2014-01-22 40 views
0

我有一个linqdatasource的asp.net页面,它使用OnUpdating方法。ASP.NET LinqDataSource“OnUpdating”方法不更新值为空

OnUpdating="Entity_OnUpdating" 

在后台代码:

protected void Entity_OnUpdating(object sender, LinqDataSourceUpdateEventArgs e) 
{ 
    MyClass objEntity = (MyClass)e.NewObject; 
    if (expression) 
     MyClass.InfoID = Guid.NewGuid(); 
    else 
     MyClass.InfoID = null; 
} 

如果expression是假的,MyClass.InfoID不是空更新之前,MyClass.InfoID不变化为null。

UPD: MyClass有两个字段: 1)ID - 主键, 2)InfoID - 可为空的外键。

你知道吗,它为什么这样工作?

回答

0

你的MyClass对象是什么样的?没有看对象,我可以猜测属性“ID”被列为主键,外键,或者根本不允许为空。

+0

我做了一些更新,以澄清MyClass对象。 – KopBuH

0

我认为InfoID属性的类型是Guid这是不能为空,所以当你试图给它分配一个空值时,它不接受。

InfoID财产的类型更改为Nullable<Guid>它会工作。