2010-07-22 2 views
1

У меня возникли некоторые странные проблемы с 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> 

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

Однако при выполнении отладки я могу фактически увидеть реальные объекты рынка, которые создаются и добавляются в сумку Markets, чего не должно происходить.

Является ли мое сопоставление неправильным или NHibernate создает в качестве прокси-объекта реальные сущности, а не свой собственный отраженный тип?

С уважением, Альваро

ответ

3

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

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

-1

После небольшого дальнейшего исследования выяснилось, что отображение класса Market имело явное ложное свойство «false», установленное внутри элемента, переопределяя настройку прокси-сервера пакета.

Все отсортировано сейчас!

Смежные вопросы