首页 文章

在Fluent NHibernate Mapping中指定预先加载

提问于
浏览
3

如何在Fluent NHibernate映射中指定一对多集合的预先加载?

我尝试了以下内容,但在检索父对象并访问它的“功能”属性时,我仍然收到两个查询:

HasMany<FeatureInstance>(s => s.Features).AsSet()
            .Inverse()
            .Cascade.SaveUpdate()
            .KeyColumn("SiteId")
            .Access.ReadOnlyPropertyThroughCamelCaseField()
            .Not.LazyLoad();

谢谢Ben

2 回答

  • 0

    我认为你还必须定义一个获取策略 . 见here .

  • 1

    即使你有两个查询,它仍然被称为急切加载,因为两个查询都是立即执行的(在延迟加载时,第二个查询只能按需执行) .

    如果您正在寻找 JOIN SQL查询,可以使用 .Fetch.Join() 强制 JOIN . 但请注意,当您以后想要使用查询从数据库中获取父对象时,生成的集合将包含每个父项的多个副本,具体取决于子项的数量(考虑SQL JOIN 返回的行数...),所以在大多数情况下它并不是很有用 .

相关问题