我在这里遗漏了一些东西!
我正在使用ISet在我的NHibernate winform c#项目中映射集合。
现在我想做这样的事情:
Person _person=new Person();
Address _address1=new Address();
_person.Addresses.Add(_address1);
_address1.Person=_person;
Address _address2=new Address();
_person.Addresses.Add(_address2);
_address2.Person=_person;
_session.Save(_person);
现在地址是HashedSet<Address>
,当我尝试添加_address2时,“添加”方法返回false,因为地址ID为空并且无法添加对象... _address1 Id也为空!
如何解决?
丹尼尔
答案 0 :(得分:2)
您需要在Address上设置一些属性并实现对象相等,以便set实现可以测试相等性。例如,我怀疑地址ID是一个很好的平等测试。相反,你想要测试数字,街道,城市等是否相等。