在Fluent NHibernate映射中指定即时加载

在Fluent NHibernate映射中指定即时加载,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,如何在Fluent NHibernate映射中指定一对多集合的即时加载 我尝试了以下操作,但在检索父对象并访问其“Features”属性时,仍收到两个查询: HasMany<FeatureInstance>(s => s.Features).AsSet() .Inverse() .Cascade.SaveUpdate() .KeyColumn("SiteId")

如何在Fluent NHibernate映射中指定一对多集合的即时加载

我尝试了以下操作,但在检索父对象并访问其“Features”属性时,仍收到两个查询:

            HasMany<FeatureInstance>(s => s.Features).AsSet()
            .Inverse()
            .Cascade.SaveUpdate()
            .KeyColumn("SiteId")
            .Access.ReadOnlyPropertyThroughCamelCaseField()
            .Not.LazyLoad();
hasmall(s=>s.Features).AsSet()
.Inverse()
.Cascade.SaveUpdate()
.KeyColumn(“站点ID”)
.Access.ReadOnlyPropertyThroughCamelCaseField()文件
.Not.LazyLoad();
谢谢
Ben

我认为您还必须定义一个获取策略。请参阅。

即使您有两个查询,它仍然被称为渴望加载,因为两个查询都会立即执行(在延迟加载中,第二个查询只会根据需要执行)

如果您正在查找
连接
SQL查询,可以使用
.Fetch.JOIN()
强制执行
连接
。但请注意,当您以后希望使用查询从数据库获取父对象时,结果集合将包含每个父对象的多个副本,具体取决于子对象的数量(想想SQL
JOIN
返回多少行…),因此在大多数情况下,它不是很有用