У меня вопрос о прокси-сервере в NHibernate. Я внутри в моем файле журнала много журналов, как: Сужение прокси - этой операции нарушается == Есть несколько других вопросов в Интернете и другой ответ:NHibernate warning Ограничение прокси-сервера - эта операция прерывается ==
Stackoverflow NHibernate narrowing proxy warningпричем большая сделка или не зависит от уровня риска, который вы готовы принять. Поскольку всегда существует разрыв между вашим кодом и вашей базой данных, вы не всегда можете гарантировать, что кастинг будет работать. Это приведет к ошибкам, которые могут быть трудно диагностировать и не могут быть разрешены без изменений в базе данных или коде.
Другой пост из спящего режима:
Narrowing problemНе беспокойтесь о его предупреждения, просто поместите в файл журнала, и вы не должны видеть его больше ...
Почему это происходит? Предположим, что у вас есть Продукт с ассоциацией «много-к-одному» для адреса. Оба являются объектами, а Address имеет подкласс ShippingAddress.
Let's Session.get (..) Продукт из db, у которого есть ShippingAddress как ассоциация. Поскольку много-к-одному ленив, он вернет адресный прокси. Обратите внимание, что это прокси-адрес Address, а не прокси-сервер ShippingAddress, поскольку прокси-сервер всегда будет соответствовать типу, указанному в Product (подробнее см. Книгу спящего режима).
Этот прокси-сервер хранится в Hibernate в его прокси-кеше. Теперь мы Session.get (...) тот же ShippingAddress из db, тот, который связан с Продуктом, который мы использовали, извлеченным из db. Теперь Hibernate увидит, что он уже содержит прокси для этого ShippingAddress и вернет его. Тем не менее, он заметит, что типы не совпадают, так что должно произойти «понижение». Поскольку это последнее действие невозможно с помощью «прокси», оно создаст новый и вернет его ...
Как вы можете видеть, не о чем беспокоиться. Вы можете рассмотреть возможность создания адреса типа значения ... В моем случае это не вариант.
И последний
Вот код из NHibernate: StatefulPersistenceContext.cs -> NarrowProxy(..)
Таким образом, это проблема или нет? Я всегда работаю с отдельными объектами в своей программе. Надеюсь, кто-то может мне помочь. Большое спасибо.