Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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
C# 流畅的NHibernate和惰性负载_C#_.net_Session_Fluent Nhibernate_Lazy Loading - Fatal编程技术网

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();

或者,你需要的是什么。

原因是-如果某个东西是惰性加载的。。。你需要的时候就去拿。