如何在Fluent NHibernate映射中指定一对多集合的预先加载?
我尝试了以下操作,但在检索父对象并访问它的“功能”属性时,我仍然收到两个查询:
HasMany<FeatureInstance>(s => s.Features).AsSet()
.Inverse()
.Cascade.SaveUpdate()
.KeyColumn("SiteId")
.Access.ReadOnlyPropertyThroughCamelCaseField()
.Not.LazyLoad();
由于 本
答案 0 :(得分:1)
即使你有两个查询,它仍然被称为急切加载,因为两个查询都是立即执行的(在延迟加载时,第二个查询只能按需执行)。
如果您正在寻找JOIN
SQL查询,可以使用.Fetch.Join()
强制JOIN
。但要注意,当您以后想要使用查询从数据库中获取父对象时,生成的集合将包含每个父项的多个副本,具体取决于子项的数量(考虑SQL JOIN
返回的行数。 ..),所以在大多数情况下它不是很有用。
答案 1 :(得分:0)
我认为你还必须定义一个获取策略。见here。