Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 忽略NHibernate合并中的字段_C#_Nhibernate - Fatal编程技术网

C# 忽略NHibernate合并中的字段

C# 忽略NHibernate合并中的字段,c#,nhibernate,C#,Nhibernate,我已经在我的大多数实体的NHibernate配置中映射了ModifiedDate。 每个实体都继承以下内容: public interface IAuditable { string ModifiedBy { get; set; } DateTime ModifiedDate { get; set; } } 每个类都将这些字段映射到数据库,因为我们希望这些值读入每个实体。我使用fluent配置和map类 我已经实现了IPreInsert和IPreUpdate事件侦听器来更新修改

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

public interface IAuditable {
    string ModifiedBy { get; set; }
    DateTime ModifiedDate { get; set; }
}
每个类都将这些字段映射到数据库,因为我们希望这些值读入每个实体。我使用fluent配置和map类

我已经实现了
IPreInsert
IPreUpdate
事件侦听器来更新修改人和修改日期。这样,框架将更新审计值。我在这里使用了代码:


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

请您澄清修改日期是什么意思? 据我所知: 您有一些包含安全审计数据的实体,例如:

public class SomeEntity {
   ...
   public DateTime CreatedDate { get; set; }
   public DateTime? ModifiedDate { get; set; }
   ...
}
您是否尝试使用ISession.Merge函数合并实体

你下面的陈述是什么意思?你能再解释一下吗

我希望保存并加载日期,但我希望NHibernate合并函数忽略修改的日期,以便查找更改


您可能正在寻找创建一个。您可以创建一个继承自
NHibernate.Event.Default.DefaultMergeEventListener
,并显式处理这些日期。我已经编辑了这个问题。我想我已经说得更清楚了。谢谢