我已经设置了一个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
在返回之前显示它具有正确的值。
但是,我的 Json 输出(在 Web API 中)显示LastModification
为0001-01-01T00:00:00
,如果我检查我在数据库中创建的实体,它也会显示相同的结果。
为什么这不起作用?