Czy istnieje sposób ustawienia trybu FetchMode na więcej niż jeden obiekt przy użyciu linq dla nhibernate. Wydaje się, że istnieje metoda rozwijania, która pozwala mi tylko ustawić jeden obiekt. Jednak muszę ustawić go dla więcej niż jednego obiektu. czy to możliwe? DziękiLinq dla trybu NHibernate i pobierania wymagającego ładowania
44
A
Odpowiedz
18
po prostu użyj go więcej niż raz.
IList<Entity> GetDataFromDatabase()
{
var query = session.Linq<Entity>();
query.Expand("Property1");
query.Expand("Property2");
return query.ToList();
}
8
O ile widzę, to nie jest równoważne: setFetchMode nawilża drzewo obiektów i Expand sposób pobiera iloczyn kartezjański.
102
Nowy dostawca LINQ robi to trochę inaczej:
var customers = session.Query<Customer>().Fetch(c => c.Orders).ToList();
Więcej tutaj: http://mikehadlow.blogspot.com/2010/08/nhibernate-linq-eager-fetching.html
0
W contiune do @Mike Hadlow
odpowiedź, ściągam następny poziom (wnuki) trzeba zrobić:
var customers = session.Query<Customer>() .FetchMany(c => c.Orders) .ThenFetchMany(o => o.OrderLines).ToList();
lub query.Expand ("Property1, Property2"); – Sprintstar
Czy to jest metoda ekspansji? Nie można go znaleźć w NHibernate.Linq v2.0.50727. –
Mam na myśli, wersja 1.0.0.0 –