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