В .NET 4 и многоядерной среде объект linq to sql datacontext использует новые параллели, если мы используем DataLoadOptions.LoadWith?LinqToSql - Параллельный - DataContext и Parallel
EDIT
Я знаю, что LINQ к SQL не распараллеливание обычных запросов. Я хочу знать, когда мы указываем DataLoadOption.LoadWith, использует ли она параллелизм для выполнения соответствия между каждым объектом и его сущностями?
Пример:
using(MyDataContext context = new MyDataContext())
{
DataLaodOptions options =new DataLoadOptions();
options.LoadWith<Product>(p=>p.Category);
return this.DataContext.Products.Where(p=>p.SomeCondition);
}
генерирует следующий SQL:
Select Id,Name from Categories
Select Id,Name, CategoryId from Products where p.SomeCondition
при создании все продукты, мы будем иметь
categories.ToArray();
Parallel.Foreach(products, p =>
{
p.Category == categories.FirstOrDefault(c => c.Id == p.CategoryId);
});
или
categories.ToArray();
foreach(Product product in products)
{
product.Category = categories.FirstOrDefault(c => c.Id == product.CategoryId);
}
?
Не забудьте указать свой любимый ответ ;-) – Steven
@Steven: Я надеялся на ответы на мои изменения ... – Gregoire
Нет никакой параллельной оптимизации того, что когда-либо было внутри L2S. См. Мое обновление. – Steven