En .NET 4 y el entorno multinúcleo, ¿aprovecha el objeto linq to sql datacontext los nuevos paralelos si usamos DataLoadOptions.LoadWith?LinqToSql - Paralelo - DataContext y Parallel
EDITAR
sé LINQ a SQL no paralelizar las consultas ordinarias. Lo que quiero saber es cuándo especificamos DataLoadOption.LoadWith, ¿utiliza la paralelización para realizar la coincidencia entre cada entidad y sus subentidades?
Ejemplo:
using(MyDataContext context = new MyDataContext())
{
DataLaodOptions options =new DataLoadOptions();
options.LoadWith<Product>(p=>p.Category);
return this.DataContext.Products.Where(p=>p.SomeCondition);
}
genera el siguiente código SQL:
Select Id,Name from Categories
Select Id,Name, CategoryId from Products where p.SomeCondition
cuando se crean todos los productos, vamos a tener una
categories.ToArray();
Parallel.Foreach(products, p =>
{
p.Category == categories.FirstOrDefault(c => c.Id == p.CategoryId);
});
o
categories.ToArray();
foreach(Product product in products)
{
product.Category = categories.FirstOrDefault(c => c.Id == product.CategoryId);
}
?
No olvide marcar su respuesta favorita ;-) – Steven
@Steven: Esperaba respuestas a mi edición ... – Gregoire
No hay ninguna optimización paralela que haya dentro de L2S. Ver mi actualización – Steven