3

我有一些关于延迟加载的问题

当我映射我的对象时,我.Not.LazyLoad()在我的应用程序中到处都写,它工作得很好。但我有一些问题。
示例:我有一堂课User。它具有属性NameComments. 映射:Comments_User

HasMany(x => x.Comments).KeyColumn("UserId").Not.LazyLoad();

哪个效果很好,但是在我加载的任何地方UserComments都会加载它,这很糟糕……负载示例User

var user = session.Get<User>(1);

如果用户有很多评论,我的应用程序运行不佳......
问题是如果需要我如何启用 LazyLoad?或者我如何禁用延迟加载,如果我不写.Not.LazyLoad()

4

1 回答 1

4

我找到了我的问题的答案。
如果不写任何地方.Not.LazyLoad()并且需要获取Comments,你必须写这个(获取 id=1 的用户):

var user = session.QueryOver<User>()
                  .Fetch(u => u.Comments)
                  .Eager
                  .List()
                  .Where(u => u.Id == userId)
                  .FirstOrDefault();

或者,你需要什么。

于 2012-05-28T13:15:19.700 回答