NHibernate - NHibernate是否识别对象相等,而更改是相应的保存行为?

时间:2010-07-16 15:31:36

标签: nhibernate insert equality

假设您有两个类,Person和Address。

Person有这样的地址引用:

public class Person
{
  public virtual Address Residence {get;set;}
}

地址具有.Equals的覆盖,它确定两个地址实例是否代表相同的物理地址(通过比较邮政编码和第一行,比如说)。

假设您有两个未保存的Person对象,它们保存对两个未保存的Address对象的引用,这些对象是独立的(就引用相等而言),但在.Equals实现方面是相同的。

NHibernate会发出一个或两个INSERT吗?

由于

大卫

1 个答案:

答案 0 :(得分:2)

它会插入两次。通过相等匹配两个瞬态实例在技术上是不可能的。

调用代码将负责匹配这些实例并用相同的引用替换它们。