C# 流畅的NHibernate和惰性负载
我有一些关于延迟加载的问题 映射完对象后,我会在应用程序中的任何地方编写C# 流畅的NHibernate和惰性负载,c#,.net,session,fluent-nhibernate,lazy-loading,C#,.net,Session,Fluent Nhibernate,Lazy Loading,我有一些关于延迟加载的问题 映射完对象后,我会在应用程序中的任何地方编写.Not.LazyLoad(),效果很好。但是我有一些问题 示例:我有一个classUser。它具有属性名称和注释。在用户中映射注释: HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad(); var user = session.Get<User>(1); 这很好,但无论我在哪里加载用户,评论都会加载,这很糟糕。。。加载用户的示例: Ha
.Not.LazyLoad()
,效果很好。但是我有一些问题示例:我有一个class
User
。它具有属性名称
和注释
。在用户
中映射注释
:
HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad();
var user = session.Get<User>(1);
这很好,但无论我在哪里加载用户
,评论
都会加载,这很糟糕。。。加载用户的示例:
HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad();
var user = session.Get<User>(1);
var user=session.Get(1);
如果用户有很多评论,我的应用程序会很糟糕…
问题是如果需要,如何启用LazyLoad?或者,如果我不编写。Not.LazyLoad()
,如何禁用延迟加载?我找到了问题的答案
如果不在任何地方写入.Not.LazyLoad()
,并且需要获取注释
,则必须写入此内容(获取id为1的用户):
var user=session.QueryOver()
.Fetch(u=>u.Comments)
渴望的
.List()
.Where(u=>u.Id==userId)
.FirstOrDefault();
或者,你需要的是什么。原因是-如果某个东西是惰性加载的。。。你需要的时候就去拿。