Мне нравится получать данные с помощью загрузки с помощью Linq2SQL. Код аналогичен:
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>();
Я проверяю, что он сгенерировал более одного SQL-запроса, как я ожидал. На самом деле, он загружает только Product и OrderDetails, а ProductCompany запрашивается один за другим. Я сделал что-то не так? Или это проблема Linq2SQL? У нас есть обходное решение?
Спасибо большое!
Update: Я проверяю sql из SQL Profiler. Я нашел, что и Леппи, и Ян прав. Они ограничены в одной транзакции. Но когда я установил его как ленивую загрузку, он открыл несколько соединений.