汎用リポジトリパターンでEntityFrameworkを使用しています。次のメソッドを使用してオブジェクトを追加しました。
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()
呼び出されたときにスローされますか?変更をロールバックできますか?