Использование 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 является хорошим тестом на равенство. Скорее, вы хотите проверить число, улицу, город и т. Д. На равенство.

Другие вопросы по тегам