我重写了NHibernate的PreInsertEventListener,以便将实体的DateCreated属性设置为DateTime.Now。
这是我的代码:
public bool OnPreInsert(PreInsertEvent e)
{
DomainObject domainObject = (DomainObject) e.Entity;
if (domainObject.CreatedById == 0) throw new Exception("The " + domainObject.GetType().Name + " cannot be created if its CreatedById property has not been set.");
domainObject.DateCreated = DateTime.Now;
return false;
}
我发现在这里设置的任何实体属性(例如,上面对DateCreated的调用)都没有找到进入NHibernate创建的更新SQL的方法。有谁知道是什么给出了什么?
是的,我已经确认我正在调用我的事件监听器!
由于
大卫
答案 0 :(得分:1)
嗯,似乎你必须使用特定的语法在游戏的这个阶段修改实体的属性。
这里演示了这种语法:
Why both NHibernate OnPreInsert and OnPreUpdate methods get called for an object
请注意,我发现您也不必以正常方式设置实体的属性,这是代码所做的。
由于
大卫