Когда я выполняю следующий запрос, я получаю исключение, сообщающее, что «feedItemQuery» содержит несколько элементов (поэтому SingleOrDefault не работает).
Это ожидаемое поведение при использовании API Критерии БЕЗ преобразователя DistinctRootEntity, но при использовании linq я ожидаю получить один корневой объект (FeedItem, со свойством Ads (of ICollection), содержащим все объявления).
Есть ли способ указать NHibernate.Linq использовать преобразователь DistinctRootEntity?
Мой запрос:
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
var feedItem = feedItemQuery.SingleOrDefault(); // This fails !?
Отображение:
<class name="FeedItem" table="FeedItems" proxy="IFeedItem">
<id name="Id" type="Guid">
<generator class="guid.comb"></generator>
</id>
...
<set name="Ads" table="Ads">
<key column="FeedItemId" />
<one-to-many class="Ad" />
</set>
</class>
Заранее спасибо