我有一个带有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
- 可以为空的外键。
你知道吗,为什么会这样?
答案 0 :(得分:0)
你的MyClass对象是什么样的?在不查看对象的情况下,我可以猜测属性“ID”被列为主键,外键,或者只是不允许空值。
答案 1 :(得分:0)
我认为InfoID
属性的类型为Guid
且不可为空,因此当您尝试为其分配空值时,它不接受。
将InfoID
属性的类型更改为Nullable<Guid>
,它会起作用。