Pregunta

¿Hay alguna manera de configurar el modo fetch para que esté ansioso por más de un objeto usando linq para nhibernate? Parece que hay un método de expansión que solo me permite establecer un objeto. Sin embargo, necesito configurarlo para más de un objeto. es posible? Gracias

¿Fue útil?

Solución

solo úsalo más de una vez.

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

Otros consejos

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

Hasta donde puedo ver, esto no es equivalente: SetFetchMode hidrata un árbol de objetos y el método Expand recupera un producto cartesiano.

En continuar con la respuesta @Mike Hadlow, buscar el siguiente nivel (nietos) que debe hacer:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top