C# NHibernate1.x:多对一不延迟加载
这是我的映射文件的摘录:C# NHibernate1.x:多对一不延迟加载,c#,nhibernate,lazy-loading,C#,Nhibernate,Lazy Loading,这是我的映射文件的摘录: <class name="XXX.A" table="a" lazy="false"> <many-to-one name="B" lazy="proxy" access="field.camelcase" cascade="none" not-null="fal
<class name="XXX.A"
table="a"
lazy="false">
<many-to-one name="B"
lazy="proxy"
access="field.camelcase"
cascade="none"
not-null="false"
class="XXX.B"
column="id_b"/>
</class>
但是当A
被其ID加载时,我看到“left join”来获取B
。如何预防
我可以补充一点,我们使用ISession.Get(…)
而不是ISession.Load(…)
如果您有
,那么NHibernate不会为它创建代理类。因为NH不能创建代理对象,所以所有
都被忽略
要启用懒散加载
B
请删除lazy=“false”
或设置
。如果您禁用了Lazy for类,因为您不想让每个方法都成为虚拟的,那么您也可以实现自己的Proxyclass来处理LazyLoading是您的B的实际实例,还是代理对象(根据您的映射应该是代理对象)?它不是代理。但B上不仅有左连接,B.X,B.Y上也有左连接!