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