我正在使用具有通用存储库模式的实体框架。我使用以下方法添加对象。
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()
被调用?我可以回滚更改吗?