我正在经历一些奇怪的事情。我用代码来修改NHibernate 3.2映射,并且有一个非常简单的对象模型,我只是用来玩。NHibernate惰性加载但没有虚拟属性?
在整个模型中我的属性都没有标记为虚拟的,因为我不想延迟加载。我通过代码映射,并在每个类映射我设置Lazy(false);
但是,当涉及到映射集合,如果我尝试访问会话后会话结束我得到一个错误"failed to lazily initialize a collection of role..."
。
我必须明确地设置collectionMapping.Lazy(CollectionLazy.NoLazy);
,然后才会急于加载集合。我的理解是,除非您的模型中的属性是在虚拟中定义的,否则懒加载是不可能的?
我从根本上错过了什么吗?
推荐阅读:[NHibernate是懒惰的,只是住它](http://ayende.com/blog/4573/nhibernate-is-lazy-just-live-with-it) – 2012-02-08 22:27:12