有没有办法使用linq for nhibernate将fetchmode设置为渴望多个对象。似乎有一种扩展方法,它只允许我设置一个对象。但是我需要为多个对象设置它。这可能吗?感谢
答案 0 :(得分:105)
新的Linq提供商的做法略有不同:
var customers = session.Query<Customer>().Fetch(c => c.Orders).ToList();
更多信息: http://mikehadlow.blogspot.com/2010/08/nhibernate-linq-eager-fetching.html
答案 1 :(得分:18)
只需使用它一次。
IList<Entity> GetDataFromDatabase()
{
var query = session.Linq<Entity>();
query.Expand("Property1");
query.Expand("Property2");
return query.ToList();
}
答案 2 :(得分:8)
据我所知,这不等同:SetFetchMode水合对象树,Expand方法检索笛卡尔积。
答案 3 :(得分:1)
根据@Mike Hadlow
答案,提取下一级(孙子)你需要做的事情:
var customers = session.Query<Customer>()
.FetchMany(c => c.Orders)
.ThenFetchMany(o => o.OrderLines).ToList();