IIntercpetor
エンティティが保存または更新されたときにエンティティのタイムスタンプ (最終更新日) を更新するように設定しました。
私の実装は次のようになります。
public class NhInterceptor : EmptyInterceptor
{
public override bool OnSave(object entity, object id, object[] state,
string[] propertyNames, NHibernate.Type.IType[] types)
{
var baseEntity = entity as EntityBase;
if (baseEntity == null)
return false;
baseEntity.LastModification = DateTime.Now;
return true;
}
public override bool OnFlushDirty(object entity, object id,
object[] currentState, object[] previousState,
string[] propertyNames, NHibernate.Type.IType[] types)
{
var baseEntity = entity as EntityBase;
if (baseEntity == null)
return false;
baseEntity.LastModification = DateTime.Now;
return true;
}
}
このコードはヒットし、デバッガーはbaseEntity.LastModification
戻る直前に正しい値を持つことを示します。
ただし、(Web API での) Json の出力はLastModification
、0001-01-01T00:00:00
データベースで作成したエンティティをチェックすると、同じ結果が表示されます。
これが機能しないのはなぜですか?