Набор NHibernate: Должен ли я переопределить Equals и GetHashCode? - PullRequest
4 голосов
/ 04 мая 2010

Я новичок в NHibernate. Я использую отображение для некоторых ассоциаций «многие к одному» и «многие ко многим». Они представлены как свойства типа ICollection , на практике реализованные HashSet .

Мой вопрос заключается в том, должен ли я переопределять Equals и GetHashCode для связанных типов, чтобы они соответствовали идентификатору базы данных типов (на практике, чтобы объекты были равны, когда свойство Id равно)? Или NHibernate справляется с этим для меня каким-то образом?

Если я сделаю это, то у меня возникнет проблема, если я захочу одновременно вставить несколько значений в коллекцию многие-ко-многим, потому что новые элементы могут иметь Id of Guid.Empty; и, следовательно, считается одним и тем же пунктом.

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Вам не обязательно сталкиваться с этой проблемой, посмотрите на AbstractEntity в uNhAddIns (который реализует Equals и GetHashCode)

1 голос
/ 14 марта 2013

Переопределить Equals / GetHashCode, если вы загружаете объекты из двух разных сессий Nhibernate. Ознакомьтесь с руководством по Nhibernate .

...