Linq para NHibernate y modo de búsqueda de carga ansiosa
fetch eager (4)
¿Hay alguna manera de establecer el modo fetchmode para más de un objeto utilizando linq for nhibernate. Parece que hay un método expand que solo me permite establecer un objeto. Sin embargo, necesito configurarlo para más de un objeto. es posible? Gracias
El nuevo proveedor de Linq lo hace un poco diferente:
var customers = session.Query<Customer>().Fetch(c => c.Orders).ToList();
Más aquí: http://mikehadlow.blogspot.com/2010/08/nhibernate-linq-eager-fetching.html
En @Mike Hadlow
respuesta de @Mike Hadlow
, ir al próximo nivel (nietos) que necesita hacer:
var customers = session.Query<Customer>() .FetchMany(c => c.Orders) .ThenFetchMany(o => o.OrderLines).ToList();
Hasta donde puedo ver, esto no es equivalente: SetFetchMode hidrata un árbol de objetos y el método Expand recupera un producto cartesiano.
solo úsalo más de una vez.
IList<Entity> GetDataFromDatabase()
{
var query = session.Linq<Entity>();
query.Expand("Property1");
query.Expand("Property2");
return query.ToList();
}