次のクエリを実行すると、「feedItemQuery」に複数のアイテムが含まれていることを示す例外が発生します (そのため、SingleOrDefault は機能しません)。
これは、DistinctRootEntity トランスフォーマーなしで Criteria API を使用する場合に予想される動作ですが、linq を使用する場合は、単一のルート エンティティ (FeedItem、すべての広告を含む (ICollection の) プロパティ Ads を持つ) を取得することを期待しています。
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>
前もって感謝します