在单个查询中检索`HasMany`实体 - Fluent-NHibernate

时间:2012-05-03 16:39:58

标签: c# nhibernate fluent-nhibernate

我有一个Entity,它以多对多的样式关系保存OtherEntity的集合。此属性的映射如下所示:

HasManyToMany(x => x.OtherEntity)
                .AsBag()
                .Table("EntityToOtherEntityMapping")
                .ParentKeyColumn("EntityId")
                .ChildKeyColumn("OtherEntityId")
                .Not.LazyLoad()
                .Cascade.None();

我注意到在检索Entity的集合时,每个OtherEntity集合都有一个单独的SQL查询。

如何让Fluent-NHibernate在一个查询中执行此检索而不是n?

2 个答案:

答案 0 :(得分:2)

在您的媒体资源上添加抓取加入。

.Fetch.Join();

答案 1 :(得分:0)

答案结果是将FetchModel设置为Eager并选择ResultTransformer:

.SetFetchMode("Tags", FetchMode.Eager)
.SetResultTransformer(Transformers.DistinctRootEntity)