Przeszukałem już SO i nie mogłem w tym celu zastosować praktycznego rozwiązania. Po prostu próbuję dowiedzieć się, jaka jest składnia wielu wewnętrznych połączeń w Linq do Entities. DziękiJak zrobić wiele wewnętrznych połączeń w Linq do encji?
Odpowiedz
Odpowiedź Jona będzie działać, ale IMHO using join in LINQ to Entities is usually wrong, ponieważ duplikuje kod w swoim modelu. Mogę przepisać zapytanie Jona w znacznie prostszy sposób w 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
}
to o 50% i 0% wpisywanie kodu duplikowane. Weź pod uwagę, że twoje relacje zostały już zdefiniowane w twoim DB i w twoim modelu. Czy na pewno chcesz je ponownie powielić w każdym pisanym przez siebie zapytaniu i przerwać zapytania, gdy refaktoryzujesz swój model?
Cóż, nie wiem, LINQ do podmiotów szczególnie, ale normalny składni LINQ byłoby:
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 };
(tj zaledwie kilka join
klauzule).
Teraz podejrzewam, że już próbowałeś - jeśli tak, to co poszło nie tak?
Chociaż to rzeczywiście działa, uważam, że lepiej jest używać relacji zamiast łączenia w konkretnym przypadku L2E. –
Co w przypadku, gdy zaczynamy od kilku podanych jednostek informacyjnych ('od informacji w db.Info, gdzie informacje ... dołączenie do produktu ...'), czy jawnie zapisane połączenia nie byłyby bardziej wydajne w tym przypadku ? Czy nie ma to znaczenia w EF i "od klienta w db.Customers od zamówienia w customer.Orders od produktu w kolejności.Produkty od informacji w product.Info, gdzie informacje ...' być tak samo skuteczny? – j00hi
@ j00hi: Zasadniczo musiałbyś spojrzeć na generowany SQL. –
- 1. Wymuszanie linq do wykonywania połączeń wewnętrznych
- 2. Jak wykonać LEFT JOIN w LINQ do encji?
- 3. Jak wykonać Wstawianie zbiorcze - Linq do encji
- 4. warunkowe zawierają w linq do encji?
- 5. LINQ do encji Dołącz do DateTime.DayOfWeek
- 6. LINQKit: zagnieżdżanie ExpandableQuery w LINQ do encji
- 7. Jak ponownie użyć filtru pola w LINQ do encji
- 8. Wiele wewnętrznych połączeń z MS Access produkujących wiele wyników. Potrzebujesz grupowania i sumowania
- 9. Wiele połączeń w Codeigniter
- 10. Duplikat LINQ do encji/rekordu SQL?
- 11. funkcja połączeń w dynamicznym LINQ
- 12. LINQ do encji poprzez właściwość interfejsu
- 13. Linq do Encji od wielu do wielu wybierz zapytanie
- 14. Jak korzystać z funkcji wartości skalarnej z linq do encji?
- 15. Jak używać WPD TreeView HierarchicalDataTemplate z LINQ do encji?
- 16. linq do encji, gdzie gdzie klauzula? (wewnętrzne gdzie)
- 17. Jak obsłużyć wiele połączeń sieciowych w Alamofire
- 18. Jak zrobić z HQL, wiele do wielu?
- 19. Wiele połączeń z gniazdami
- 20. Problem EntityFunctions.CreateDateTime ze skokiem Rok w linq do encji
- 21. Właściwy sposób na usunięcie rekordu w LINQ do encji
- 22. Operatora '==' Operatora 'System.Guid' i 'string' w linq do encji
- 23. Inicjowanie mocno wpisanych obiektów w LINQ do encji
- 24. Mockito: wiele połączeń do tej samej metody
- 25. LINQ wiele-do-wielu skrzyżowaniu
- 26. Jak zrobić głęboką kopię elementu w LINQ do XML?
- 27. Zapytanie LINQ do encji trwa długo, SQL działa szybko
- 28. Jak wykonać wiele operacji wewnątrz pętli C# LINQ ForEach?
- 29. Porównaj daty używania LINQ do encji (Entity Framework)
- 30. LINQ do encji Zawiera Case In-Sensitive Searching
wow..dobry punkt – user161433
@Craig - Szkoda, że nie zrozumiałem, co tu widzę parę godzin temu. Brakowało mi "od zamówienia w customer.Order" - robiłem odpowiednik "z zamówienia w db.Orders", co jest zupełnie inne. Dzięki za to. – chris
Generuje to połączenia krzyżowe w zapytaniu ... – dudeNumber4