Использование Iesi ISet с NHibernate
Я что-то здесь упускаю!
Я использую 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, метод "Add" возвращает false, поскольку Address Id имеет значение null, а объект не может быть добавлен... _address1 Id также имеет значение null!
Как решить?
Daniele
1 ответ
Решение
Вам нужно установить некоторые свойства в Address и реализовать равенство объектов, чтобы реализация набора могла проверить равенство. Например, я сомневаюсь, что Address Id является хорошим тестом на равенство. Скорее, вы хотите проверить число, улицу, город и т. Д. На равенство.