ODSControllerでUpdateメソッドを使用する場合(つまり、ASP.NETアプリケーションでGridView / FormViewを使用する場合)、null値をnull許容列に渡す場合、null許容列の値は変更されません。
これは、updateメソッドがActiveRecordをインスタンス化して更新する方法によるものです。
public void Update(Guid MyKey, ...)
{
MyItem item = new MyItem();
item.MarkOld();
item.IsLoaded = true;
...
item.Save(UserName);
}
空のMyItemインスタンスを作成し(すべてのフィールドがnull)、null許容フィールドをnullに設定しても、DirtyColumnsコレクションで列を終了することはできません(ActiveHelper GetUpdateCommandを参照)。
これを解決するために、データベース内のすべてのテーブルに対してカスタム更新関数を作成する必要がありますか?