2
我正在使用实体框架与通用存储库模式。我已经使用下面的方法来添加一个对象。将使用ObjectContext.Add中的Parallel.ForEach好处
public int Add<TEntity>(TEntity entity) where TEntity : class
{
DataContext.AddObject(GetEntityName<TEntity>(), entity);
return SaveChanges();
}
我也想扩展它来支持多个实体。
public int Add<TEntity>(TEntity[] collection) where TEntity : class
{
foreach (TEntity item in collection)
{
DataContext.AddObject(GetEntityName<TEntity>(), item);
}
return SaveChanges();
}
会有使用Parallel.ForEach
而不是在上述情况下的foreach
循环的实际好处?
也因为我还没有叫SaveChanges()
直到循环结束后,如果有可以说主键冲突,将它的循环内被抛出,或当SaveChanges()
叫?我能够回滚更改吗?
如果您愿意锁定对ObjectContext的所有访问,则可以使用Parallel.ForEach。如果每个项目都添加了相当多的创建逻辑,这可能是值得的。 –