Мешок NHibernate - реальные объекты набора вместо прокси

Я испытываю некоторые странные проблемы с NHibernate и использованием объектов прокси в сумке. Мое отображение смотрит что-то подобное:

<?xml version="1.0" encoding="utf-8" ?>

<bag name="Markets" table="ITPUserWatchlistMarkets" cascade="none" lazy="false">
  <key column="UserWatchlistId" />
  <many-to-many class="Swan.Domain.Markets.Market, Swan.Domain.Markets" column="MarketId" lazy="proxy" />
</bag>

К моему пониманию, путем установки many-many, отображающегося как ленивого = "прокси", NHibernate должен создавать объект прокси, который отличается от моего типа Рынка, только с идентификационными данными вводят его и ничто иное набор на нем.

Однако при пробежке отладки, я могу на самом деле видеть, что реальные объекты Рынка инстанцированы и добавлены к мешку Рынков, которого не должно происходить.

Действительно ли мое отображение является неправильным, или NHibernate создает фактические объекты, а не его собственный отраженный тип как объект прокси?

С уважением, Alvaro

1
задан Alvaro 22 July 2010 в 09:57
поделиться

2 ответа

Вы правильно понимаете, как NHibernate создает экземпляр прокси-сервера и сущностей. При первом доступе к каким-либо свойствам этой прокси-сущности NHibernate загрузит сущность из базы данных.

Следует попытаться отслеживать sql-запросы, создаваемые NHibernates, чтобы увидеть, когда эти запросы вызываются с помощью чего-то вроде NH Profiler или SQL Profiler.

3
ответ дан 2 September 2019 в 22:51
поделиться

При дальнейшем исследовании выяснилось, что в отображении класса Market было явно установлено свойство lazy="false" в элементе, переопределяющее собственные параметры прокси мешка.

Теперь все улажено!

-1
ответ дан 2 September 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: