asume que tienen estas entidades EF generada simplificados ...Entity Framework - Condición selectivo en la navegación por la propiedad Incluye
public class PurchaseOrder
{
public int POID {get;set;}
public int OrderID {get;set;}
public int VendorID {get;set;}
public IEnumerable<Order> Orders {get;set;}
}
public class Order
{
public int OrderID {get;set;}
public decimal Price {get;set;}
public IEnumerable<Item> Items {get;set;}
}
public class Item
{
public int OrderID {get; set;}
public string SKU {get;set;}
public int VendorID {get;set;}
public Order Order {get;set;}
}
lógica de negocios:
Una orden puede tener múltiples OP, uno para cada proveedor distinto en el pedido (los proveedores se determinan a nivel de artículo).
¿Cómo puedo incluir entidades secundarias de forma selectiva?
Al consultar las OP, quiero incluir automáticamente las entidades infantiles para el pedido y el artículo.
puedo lograr esto, usando include() ...
Context.PurchaseOrders.Include("Orders.Items");
Esto es trabajo y tira hacia atrás entidades relacionadas, pero, que sólo quieren incluir entidades artículo cuyo IdProveedor coincide con el de la IdProveedor Entidad PurchaseOrder.
Con el SQL tradicional, simplemente lo incluiría en la condición JOIN, pero EF los compila internamente.
¿Qué magia de LINQ puedo usar para decirle a EF que aplique la condición, sin crear manualmente las UNIONES entre las entidades?
espero ver esto como una mejora de funciones en el futuro. – ctorx
@Matthew - serían una gran adición al framework –
más de cinco años y aún nada ... asombroso, no está mal para una de las características más útiles que EF podría tener ... -.- ' – Shockwaver