45

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

4

4 回答 4

106

新的 Linq 提供程序的做法略有不同:

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

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

于 2010-08-06T11:22:07.893 回答
19

只需多次使用它。

IList<Entity> GetDataFromDatabase()
{
    var query = session.Linq<Entity>();
    query.Expand("Property1");
    query.Expand("Property2");
    return query.ToList();
}
于 2009-05-06T23:57:20.630 回答
8

据我所知,这并不等同:SetFetchMode 水合对象树,而 Expand 方法检索笛卡尔积。

于 2009-09-20T20:23:24.967 回答
1

在继续@Mike Hadlow回答,获取下一个级别(孙子)你需要做:

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

于 2016-12-15T13:15:45.047 回答