在流畅的nhibernate中,我可以将Fetch.Something和Not.LazyLoad设置为Reference或HasMany。如果我同时使用它们会发生什么?
这两种方式如何反映以这三种方式查询数据?
class UserMap
{
HasMany(x=>x.Contacts). (Fetch or Not.LazyLoad)
References(x=>x.Supervisor). (Fetch or Not.LazyLoad)
}
session.Query<User>();
session.Query<User>().FetchMany(x=>x.Contacts);
session.Get<User>(ID);
答案 0 :(得分:3)
问题是Query / HQL没有考虑Fetch
。因此,在运行查询后,它会立即尝试逐个获取Not.LazyLoad
属性 。
通常,在99%的情况下禁用延迟加载是一个坏主意。建议阅读:NHibernate is lazy, just live with it