无法在NHibernate事件侦听器中设置实体属性

时间:2010-07-12 13:33:30

标签: sql nhibernate insert save event-listener

我重写了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的方法。有谁知道是什么给出了什么?

是的,我已经确认我正在调用我的事件监听器!

由于

大卫

1 个答案:

答案 0 :(得分:1)

嗯,似乎你必须使用特定的语法在游戏的这个阶段修改实体的属性。

这里演示了这种语法:

Why both NHibernate OnPreInsert and OnPreUpdate methods get called for an object

请注意,我发现您也不必以正常方式设置实体的属性,这是代码所做的。

由于

大卫