Lubię pobierać dane z niecierpliwością przy użyciu Linq2SQL. Kod jest podobny do:Linq2SQl chciwe obciążenie z wieloma DataLoadOptions
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Product>(c => c.ProductCompanies);
options.LoadWith<Product>(c => c.OrderDetails);
db.LoadOptions = options;
IEnumerable<Product> products = db.Products.ToList<Product>();
Sprawdzam, czy wygenerowałem więcej niż jedno zapytanie SQL zgodnie z oczekiwaniami. W rzeczywistości tylko ładnie ładuje się z Product i OrderDetails, a ProductCompany jest zapytany jeden po drugim. Czy zrobiłem coś złego tutaj? Lub jest to problem Linq2SQL? Czy mamy jakieś obejście?
Wielkie dzięki!
Aktualizacja: Sprawdzam sql z SQL Profiler. Stwierdziłem, że zarówno Leppie, jak i Ian są poprawni. Są ograniczone w jednej transakcji. Ale kiedy ustawiłem to jako leniwe obciążenie, otworzyło ono wiele połączeń.
uważać , DataLoadOptions tworzy bardzo nieefektywne zapytania. –
Dzięki, Chad! W następnym projekcie wrócę do Nhibernate: =) –