对象上的NHibernate UserType值

时间:2010-03-15 10:20:58

标签: nhibernate session usertype

我正在使用UserType在我的数据库中维护一个列(Created)。

保存到db时,只需检查相关属性是否等于DateTime.MinValue,如果是,则将其更新为DateTime.Now(覆盖NullSafeSet)。但是,这个更新不会立即被nhibernate反映出来,如果我再次加载对象而不驱逐它,Created的值仍然是DateTime.MinValue。

有没有其他方法可以获得值NHibernate返回以返回更新的值,而不是使用Session.Evict()?

1 个答案:

答案 0 :(得分:1)

您可以(也可能应该)通过挂钩预插入和预更新事件而不是使用IUserType 来实现。查看this question了解详情。

要对您的实体执行您想要的操作,您可以将evt.Entity强制转换为支持您的字段的接口(示例中为IHasLastModified),然后设置该值。