ASP.NET LinqDataSource“OnUpdating”方法不将值更新为null

时间:2014-01-22 12:14:56

标签: c# asp.net .net telerik linqdatasource

我有一个带有linqdatasource的asp.net页面,它使用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为false,并且MyClass.InfoID在更新前未为空,则MyClass.InfoID不会更改为null。

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

你知道吗,为什么会这样?

2 个答案:

答案 0 :(得分:0)

你的MyClass对象是什么样的?在不查看对象的情况下,我可以猜测属性“ID”被列为主键,外键,或者只是不允许空值。

答案 1 :(得分:0)

我认为InfoID属性的类型为Guid且不可为空,因此当您尝试为其分配空值时,它不接受。

InfoID属性的类型更改为Nullable<Guid>,它会起作用。