Переопределение Equals обязательно требуется, если вы хотите выполнять отложенную загрузку.
Это связано с тем, что NHibernate использует метод Equals для определения равенства. По умолчанию используется равенство ссылок.
Когда NHibernate реализует отложенную загрузку, он использует прокси-объекты, которые являются подклассами класса реальной сущности, причем каждый член переопределяется для включения отложенной загрузки.
Следовательно, чтобы ваше приложение распознало, что прокси-объект - это то же самое, что и объект, для которого он предназначен, - он вообще не должен знать о прокси-объекте.
Таким образом, вы должны переопределить оператор Equals для интеллектуального распознавания равенства (после проверки ссылочного равенства ... и т. Д.), Что объекты равны, если их идентификаторы равны.