Я уже просматривал SO и не мог заплатить за это работоспособное решение. Я просто пытаюсь понять, что такое синтаксис для нескольких внутренних объединений в Linq для Entities. БлагодаряКак вы выполняете множественные внутренние соединения в Linq для объектов
ответ
Ответ Джона будет работать, но IMHO using join in LINQ to Entities is usually wrong, потому что он дублирует код в вашей модели. Я могу переписать запрос Jon в намного более простым способом в 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
}
Это около 50% от ввода и 0% дублированного кода. Подумайте, что ваши отношения уже определены в вашей базе данных и в вашей модели. Вы действительно хотите дублировать их снова в каждом запросе, который вы пишете, и прерывать свои запросы при реорганизации вашей модели?
Ну, я не знаю, LINQ к Entities в частности, но нормальный синтаксис LINQ будет:
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 };
(т.е. всего несколько join
положений).
Теперь я подозреваю, что вы уже пробовали это - если да, то что пошло не так?
Хотя это действительно работает, я считаю, что лучше использовать отношения вместо объединений в конкретном случае L2E. –
Что касается случая, когда мы начинаем с пары данных Info-сущностей ('from info in db.Info, где информация ... join product ...'), не будут ли более явные написанные объединения более эффективными в этом случае ? Или это не имеет значения в EF и будет «от клиента в db.Customers от заказа в customer.Orders от продукта в order.Products от info в product.Info, где информация ...' быть столь же эффективным? – j00hi
@ j00hi: Вы должны смотреть на генерируемый SQL. –
- 1. Множественные подсеточные внутренние соединения Mysql
- 2. HQL: множественные внутренние соединения в запросах HQL
- 3. Nhibernate 3 Linq - внутренние соединения
- 4. Вложенные внутренние соединения в linq to sql?
- 5. Linq to Sql: множественные левые внешние соединения
- 6. внутренние соединения в оракула
- 7. Как сделать триггер в Linq для объектов?
- 8. Как преобразовать этот SQL в LINQ? (Внутренние соединения и подзапросы)
- 9. Как вы выполняете обнаружение функции в ScriptSharp?
- 10. Как вы можете условно добавить внутренние соединения в оператор select?
- 11. Внутренние соединения в php
- 12. Внутренние соединения в HQL
- 13. LINQ - множественные левые внешние соединения только для самых последних записей
- 14. Как вы выполняете проверку адреса?
- 15. Как вы выполняете CROSS JOIN с LINQ to SQL?
- 16. Внутренние соединения в подзапросах
- 17. Как вы выполняете системную интеграцию?
- 18. Как вы выполняете условие «и»?
- 19. Как вы выполняете инструкции Readline?
- 20. Как использовать mutiple внутренние соединения
- 21. Как сопоставить множественные SQL-левые соединения с Linq-To-SQL
- 22. Преобразование SQL, содержащего внутренние и внешние соединения в Linq
- 23. Как вы динамически выполняете квадроциклы в UE4?
- 24. LINQ to Entities - множественные соединения - исключение ссылочной ссылки в 'Select'
- 25. SQL множественные внутренние базы объединений
- 26. внутренние соединения таблицы mysql
- 27. Multiple Внутренние соединения - MySQL
- 28. как вы выполняете .JAR-файлы в java
- 29. Как вы выполняете перенаправление в приложении facebook?
- 30. Как вы выполняете прогнозы в RethinkDB?
wow..хорошая точка – user161433
@Craig - Хотел бы я понять, что я смотрю здесь пару часов назад. То, что я пропустил, было «от заказа в customer.Order» - я делал эквивалент «из порядка в db.Orders», что совершенно другое. Спасибо за это. – chris
Это генерирует кросс-соединения в запросе ... – dudeNumber4