C#-流利的NHibernate和延迟加载
作者:互联网
我有一些关于延迟加载的问题
映射对象后,我会在应用程序中的所有位置编写.Not.LazyLoad(),并且效果很好.但是我有一些问题.
示例:我有一个User类.它具有属性名称和注释.在用户中映射评论:
HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad();
效果很好,但是在我加载用户的任何地方,评论都会被加载,这很糟糕…加载用户的示例:
var user = session.Get<User>(1);
如果用户有很多评论,我的应用程序将无法正常工作…
问题是如何在需要时启用LazyLoad?或者,如果我不编写.Not.LazyLoad(),如何禁用延迟加载?
解决方法:
我找到了我问题的答案.
如果不在任何地方编写.Not.LazyLoad()并需要获取注释,则必须编写此代码(获取id = 1的用户):
var user = session.QueryOver<User>()
.Fetch(u => u.Comments)
.Eager
.List()
.Where(u => u.Id == userId)
.FirstOrDefault();
或者,您需要什么.
标签:lazy-loading,session,c,net,fluent-nhibernate 来源: https://codeday.me/bug/20191101/1982415.html