Ran*_*ray 2 entity-framework-4 objectcontext parallel.foreach
我正在使用Entity Framework和通用存储库模式.我使用以下方法添加对象.
public int Add<TEntity>(TEntity entity) where TEntity : class
{
DataContext.AddObject(GetEntityName<TEntity>(), entity);
return SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我也在考虑扩展它以支持多个实体.
public int Add<TEntity>(TEntity[] collection) where TEntity : class
{
foreach (TEntity item in collection)
{
DataContext.AddObject(GetEntityName<TEntity>(), item);
}
return SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
在上述场景中使用Parallel.ForEach而不是foreach循环会有实际好处吗?
另外因为我没有SaveChanges()在循环结束之前调用,如果有让我们说主键违规,它会被抛入循环内部还是SaveChanges()被调用时?我可以回滚更改吗?
Era*_*nga 10
ObjectContext不是线程安全的.这是关于MSDN的评论
ObjectContext类不是线程安全的.在多线程方案中无法确保ObjectContext中数据对象的完整性.
所以最好不要使用Parallel.ForEach.
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |