Ya he buscado a través de SO y no pude encontrar una solución viable para esto. Solo estoy tratando de calcular cuál es la sintaxis para múltiples combinaciones internas en Linq para Entidades. Gracias¿Cómo se hace Múltiples uniones internas en Linq a Entidades
Respuesta
La respuesta de Jon funcionará, pero en mi humilde opinión using join in LINQ to Entities is usually wrong, porque duplica el código en su modelo. Puedo volver a escribir la consulta de Jon de una manera mucho más simple en L2E:
var query = from customer in db.Customers
from order in customer.Orders
from product in order.Products
from info in product.Info
select new
{
customer.Name,
info.BriefDescription
}
Eso es alrededor del 50% de la mecanografía y 0% del código duplicado. Considere que sus relaciones ya han sido definidas en su DB y en su modelo. ¿Realmente desea duplicarlos de nuevo en cada consulta que escriba y romper sus consultas cuando refactorice su modelo?
Bueno, no sé LINQ a Entidades en particular, pero la sintaxis de LINQ normal sería:
var query = from customer in db.Customers
join order in db.Orders on customer.ID equals order.ID
join product in db.Products on order.ProductID equals product.ID
join info in db.Info on product.InfoID equals info.ID
select new { customer.Name, info.BriefDescription };
(es decir, sólo varios join
cláusulas).
Ahora sospecho que ya lo ha intentado, si es así, ¿qué salió mal?
Si bien esto realmente funciona, creo que es mejor forma de usar relaciones en lugar de uniones en el caso específico de L2E. –
¿Qué pasa con el caso cuando comenzamos con un par de entidades de información dadas ('de información en db.Info donde información ... unir producto ...'), no sería más eficiente las uniones explícitamente escritas en ese caso ? ¿O no importa en EF y lo haría 'desde el cliente en db.Clientes del pedido en el cliente. Pedidos del producto en orden.Productos de información en el producto.Info donde la información ...' sea igual de eficiente? – j00hi
@ j00hi: Tendría que mirar el SQL que se está generando, básicamente. –
- 1. Linq a entidades: Uniones + Distintas
- 2. Obligar a linq a realizar uniones internas
- 3. Dos uniones internas MYSQL
- 4. ¿Cómo convierto múltiples combinaciones internas en SQL a LINQ?
- 5. Linq a NHibernate generar múltiples uniones a la misma tabla
- 6. Uniones LINQ - Rendimiento
- 7. Uniones condicionales en LINQ
- 8. Uniones múltiples en Codeigniter
- 9. Uniones internas múltiples con MS Access que producen resultados múltiples. Necesitan agrupar y sumar
- 10. Trace LINQ cuando se utilizan uniones
- 11. LINQ a Entidades EF4
- 12. Nhibernate 3 LINQ - combinaciones internas
- 13. agrupar y múltiples ordenamientos utilizando LINQ a Entidades
- 14. Linq a Entidades Skip() y Take()
- 15. Linq a Entidades con WCF
- 16. Uniones múltiples Postgres
- 17. ¿Son siete uniones internas en una consulta demasiado?
- 18. LINQ a las entidades Únete en DateTime.DayOfWeek
- 19. Linq a Entidades Cláusula Distintiva
- 20. ¿Cómo hacer IZQUIERDA UNIÓN en LINQ a Entidades?
- 21. include() en LINQ a Entidades consultar
- 22. combinación interna en LINQ a las entidades
- 23. condicional incluir en linq a las entidades?
- 24. Supresión masiva en LINQ a entidades
- 25. Agregue una fecha en Linq a entidades
- 26. linq a entidades vs linq a objetos - ¿son lo mismo?
- 27. Filas duplicadas cuando se vinculan datos con LINQ a Entidades
- 28. LINQ a Entidades - se aplica varios métodos OrdenarPor no funcionan
- 29. LINQ a las entidades y Lazy Loading
- 30. LINQ a entidades para restar 2 fechas
wow ... buen punto – user161433
@Craig - Desearía haber entendido lo que estaba buscando aquí hace un par de horas. Lo que me perdí fue el "del pedido en el cliente. Orden" - Estaba haciendo el equivalente a "del pedido en db.Orders", que es totalmente diferente. Gracias por esto, sin embargo. – chris
Esto genera uniones cruzadas en la consulta ... – dudeNumber4