我需要更新OnFlushDirty
中实现的列
NHibernate - IInterceptor
。
我使用在'before-save'方法中初始化的属性,
但是在Interceptor中,实体中的属性仍然是空的。 (因为它没有映射 -
没有必要映射此属性,仅用于Inercerptor
使用)
这是代码:
public override bool OnFlushDirty(object entity,
object id,
object[] currentState,
object[] previousState,
string[] propertyNames,
IType[] types)
{
var index = propertyNames.IndexOf("LastUpdateDate");
if (index >= 0 && entity is ISessionPerUser)
{
currentState[index] = DateTime.Now;
var lastUpdateUserIdIndex = propertyNames.IndexOf("LastUpdateUserId");
if(index >= 0))
{
currentState[lastUpdateUserIdIndex] = (entity as ISessionPerUser).RequestUserId;
}
return true;
}
return base.OnFlushDirty(entity, id, currentState, previousState, propertyNames, types);
}
任何人都有解决方案吗?