Что такое проблема идентификации объекта в NHibernate? - PullRequest
3 голосов
/ 02 мая 2010

Что означает проблема идентификации объекта в NHibernate?

Ответы [ 2 ]

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

Проблема идентификации объекта заключается в том, что не существует идеального (точнее 100%) способа убедиться, что идентификатор объекта для простого объекта CLR имеет отображение 1: 1 на идентификатор объекта в NHibernate.

Причина в том, что идентификация объекта в одном случае (CLR) определяется указателем объекта, а идентификация объекта в другом случае - значением идентификатора базы данных.

Так что может быть невозможно полностью надежно сопоставить объект CLR с объектом NHibernate.

Кстати: в этом нет ничего особенного для NHibernate, но оно действительно для любого объектно-реляционного картографа.

1 голос
/ 02 мая 2010

Проблема идентификации объекта связана с несоответствием между объектами и тем фактом, что отношения эквивалентности между объектами могут быть определены по-разному.

По умолчанию эквивалентность между объектами определяется с помощью указателя объекта в памяти. Это означает, что два объекта, загруженные с использованием одного и того же PK в двух разных сеансах, будут считаться разными, что немного противоречит интуиции.

Таким образом, представляется естественным переопределить отношение эквивалентности для использования PK, чтобы два таких объекта считались эквивалентными. Но тогда как вы справляетесь с объектами, которые еще не были сохранены и еще не назначены ПК? Теперь вы, вероятно, начинаете видеть проблемы, с которыми мы сталкиваемся ...

Для получения более подробной информации, вы можете взглянуть на , каковы наилучшие практики для достижения равенства , где я перечислил различные стратегии и рекомендации, связанные с этой проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...