Linq for NHibernate和抓取加载模式

有没有办法设置fetchmode渴望多个对象使用linq nhibernate。 似乎有一个扩展方法,只允许我设置一个对象。 不过,我需要将其设置为多个对象。 这可能吗? 谢谢

只是多用一次。

IList<Entity> GetDataFromDatabase() { var query = session.Linq<Entity>(); query.Expand("Property1"); query.Expand("Property2"); return query.ToList(); } 

新的Linq提供程序有点不同:

 var customers = session.Query<Customer>().Fetch(c => c.Orders).ToList(); 

更多信息: http : //mikehadlow.blogspot.com/2010/08/nhibernate-linq-eager-fetching.html

据我所见,这不是等价的:SetFetchMode水化一个对象树,Expand方法检索一个笛卡尔积。

@Mike Hadlow回答中, @Mike Hadlow下一级(孙子)你需要做的是:

var customers = session.Query<Customer>() .FetchMany(c => c.Orders) .ThenFetchMany(o => o.OrderLines).ToList();

Interesting Posts