NHibernate Interceptor - 使用未映射的属性

时间:2018-04-26 06:22:28

标签: nhibernate interceptor

我需要更新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);
    }

任何人都有解决方案吗?

0 个答案:

没有答案