NHibernate: Причины переопределения Equals и GetHashCode

Есть ли причины, по которым Equals или GetHashCode следует переопределить в сущностях при использовании NHibernate? И в каких сценариях эти причины действительны?

Некоторые причины, которые можно найти в Интернете:

  • Поддержка отложенной загрузки. Сравнение прокси-объекты по умолчанию Equals метод может привести к неожиданным ошибкам. Но это должно быть решено карта идентичности (и она действительно находится в много случаев), не так ли? При работе с сущностями из одного сеанса все должно работать нормально, даже без переопределения Equals / GetHashCode. Здесь любые случаи, когда карта идентичности не сыграть свою роль?
  • Это важно для коллекций NHibernate. Существуют ли случаи, когда реализации GetHashCode по умолчанию недостаточно (не считая проблем, связанных с Equals)?
  • Смешивание сущностей из нескольких сеансы и отдельные объекты. Это хорошая идея?

Есть другие причины?

16
задан Jakub Linhart 3 May 2011 в 08:21
поделиться