Подтвердить что ты не робот

Linq для режима NHibernate и выборки при загрузке

Есть ли способ установить fetchmode для более чем одного объекта, используя linq для nhibernate. Кажется, существует метод расширения, который позволяет мне только установить один объект. Однако мне нужно установить его для нескольких объектов. Это возможно? Благодаря

4b9b3361

Ответ 1

просто используйте его более одного раза.

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

Ответ 3

Насколько я вижу, это не эквивалентно: SetFetchMode убирает дерево объектов, а метод Expand извлекает декартовы продукт.

Ответ 4

В ответ на @Mike Hadlow ответ, выбор следующего уровня (внуков) вам нужно сделать:

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