Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/nhibernate/3.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
NHibernate-NHibernate是否认识到对象相等,并相应地改变保存行为?_Nhibernate_Insert_Equality - Fatal编程技术网

NHibernate-NHibernate是否认识到对象相等,并相应地改变保存行为?

NHibernate-NHibernate是否认识到对象相等,并相应地改变保存行为?,nhibernate,insert,equality,Nhibernate,Insert,Equality,假设您有两个类,Person和Address 此人对地址的引用如下: public class Person { public virtual Address Residence {get;set;} } Address的重写为.Equals,它确定两个地址实例是否表示相同的物理地址(例如,通过比较邮政编码和第一行) 假设您有两个未保存的Person对象,它们包含对两个未保存地址对象的引用,这两个对象是分开的(在引用相等方面),但在.Equals实现方面是相等的 NHibernate会发布

假设您有两个类,Person和Address

此人对地址的引用如下:

public class Person
{
  public virtual Address Residence {get;set;}
}
Address的重写为.Equals,它确定两个地址实例是否表示相同的物理地址(例如,通过比较邮政编码和第一行)

假设您有两个未保存的Person对象,它们包含对两个未保存地址对象的引用,这两个对象是分开的(在引用相等方面),但在.Equals实现方面是相等的

NHibernate会发布一个或两个插页吗

谢谢


David将插入两次。让它相等地匹配两个瞬态实例在技术上是不可能的


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

是一个实体(例如,具有自己表的映射类)还是一个值对象(例如,映射为组件并存储在Person表中?),它本身就是一个实体。数据库是高度标准化的(我开始猜测对于NHibernate来说不是很好)。