Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate 我可以防止as HasOne映射导致数据库调用吗?_Nhibernate_Fluent Nhibernate - Fatal编程技术网

Nhibernate 我可以防止as HasOne映射导致数据库调用吗?

Nhibernate 我可以防止as HasOne映射导致数据库调用吗?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在使用FluentNHibernate,有两个类具有1:1的关系。项目A包括 public virtual ItemB { get; set; } 并映射为 HasOne(x => x.ItemB).ForeignKey("ItemID"); 我只对ItemA感兴趣,但因为它有以下映射,所以我在运行时看到两个数据库调用: var res = session.Query<ItemA>() .SingleOrDefault(x =

我正在使用FluentNHibernate,有两个类具有1:1的关系。项目A包括

public virtual ItemB { get; set; }
并映射为

   HasOne(x => x.ItemB).ForeignKey("ItemID");
我只对ItemA感兴趣,但因为它有以下映射,所以我在运行时看到两个数据库调用:

 var res = session.Query<ItemA>()
                  .SingleOrDefault(x => x.ItemId.ToString() =="AC3E30FF-E767-440F-AB1F-0000293C5A0C");
这可能很简单,但我有另一个类,它为我不需要使用的表提供了许多“HasOne”关系,但是Select查询变得相当复杂


我尝试在映射中添加“Lazyload”,但这似乎没有改变任何事情。是否有任何方法可以保持HasOne关系,但能够为我的“查询”生成一个简单、单一的“选择”查询(即从ItemA中选择[columns],其中ItemID=…)?

否,无法实现<代码>一对一将只是渴望,没有惰性设置会有帮助

但正如这里所说:

一对一的协会

。。。或者,员工之间具有唯一约束的外键可以表示为:

`
//在fluent References()中
通过将以下内容添加到人员映射中,可以实现双向关联:


因此,我建议使用
References
mapping

引用(x=>x.ItemB.Unique().Cascade.All()

见:

References(x => x.ItemB).ForeignKey("ItemId");
<many-to-one name="Person" class="Person" column="PERSON_ID" unique="true"/>`
// which is in fluent References()
<one-to-one name="Employee" class="Employee" property-ref="Person"/>