在Fluent NHibernate映射中指定即时加载
如何在Fluent NHibernate映射中指定一对多集合的即时加载 我尝试了以下操作,但在检索父对象并访问其“Features”属性时,仍收到两个查询:在Fluent NHibernate映射中指定即时加载,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,如何在Fluent NHibernate映射中指定一对多集合的即时加载 我尝试了以下操作,但在检索父对象并访问其“Features”属性时,仍收到两个查询: HasMany<FeatureInstance>(s => s.Features).AsSet() .Inverse() .Cascade.SaveUpdate() .KeyColumn("SiteId")
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()
强制执行连接
。但请注意,当您以后希望使用查询从数据库获取父对象时,结果集合将包含每个父对象的多个副本,具体取决于子对象的数量(想想SQLJOIN
返回多少行…),因此在大多数情况下,它不是很有用