0

我在这里遗漏了一些东西!

我正在使用 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 也为空!

如何解决?

丹尼尔

4

1 回答 1

2

您需要在 Address 上设置一些属性并实现对象相等,以便 set 实现可以测试相等性。例如,我怀疑 Address Id 是一个很好的平等测试。相反,您可能想要测试数字、街道、城市等是否相等。

于 2012-08-27T22:40:36.863 回答