在 ODSController 上使用 Update 方法(即在 ASP.NET 应用程序中使用 GridView / FormView)并将空值传递给可空列时,可空列值保持不变。
这是由于 update 方法实例化 ActiveRecord 进行更新的方式:
public void Update(Guid MyKey, ...)
{
MyItem item = new MyItem();
item.MarkOld();
item.IsLoaded = true;
...
item.Save(UserName);
}
通过创建一个空的 MyItem 实例(所有字段均为空)并将可为空的字段设置为空,不允许列在 DirtyColumns 集合中完成(请参阅 ActiveHelper GetUpdateCommand)。
我是否要为我的数据库中的每个表编写自定义更新函数来解决这个问题?