0

我已经在我的 NHibernate 配置中为我的大多数实体映射了 ModifiedDate。每个实体都继承了这个:

public interface IAuditable {
    string ModifiedBy { get; set; }
    DateTime ModifiedDate { get; set; }
}

每个类都将这些字段映射到数据库,因为我们希望将这些值读入每个实体。我使用流利的配置和地图类。

我已经实现IPreInsertIPreUpdate事件监听器来更新修改日期和修改日期。这样,框架将更新审计值。我在这里使用了代码:http: //ayende.com/blog/3987/nhibernate-ipreupdateeventlistener-ipreinserteventlistener

我如何确保无论 ModifiedBy 和 ModifedDate 中的值是什么,它们都不会被认为是脏的,并且它们本身不会使实体变脏?只有当其他字段发生变化时,实体才必须是脏的。

4

1 回答 1

0

您能否澄清修改日期是什么意思?据我了解:您有一些具有安全审计数据的实体,例如:

public class SomeEntity {
   ...
   public DateTime CreatedDate { get; set; }
   public DateTime? ModifiedDate { get; set; }
   ...
}

你是否尝试使用 ISession.Merge 函数来合并实体?

你下面的陈述是什么意思?你能给出更多解释吗?

我希望保存和加载日期,但我希望 NHibernate 合并功能忽略修改日期以查找更改

于 2013-06-18T12:30:20.897 回答