2
일반 저장소 패턴과 함께 Entity Framework를 사용하고 있습니다. 다음 메소드를 사용하여 객체를 추가했습니다.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();
}
대신 위의 시나리오에서
foreach
루프의
Parallel.ForEach
를 사용의 실제 효과가있을 것인가? 이 경우 내가 루프가 끝날 때까지
SaveChanges()
라고하지 않았 또한 때문에
는 기본 키 위반, 그것은 루프 내부에 던져 질 것이다하거나 SaveChanges()
이라고 말할 수? 변경 사항을 롤백 할 수 있습니까?
ObjectContext에 대한 모든 액세스를 잠 그려면 Parallel.ForEach를 사용할 수 있습니다. 추가되는 각 항목에 대해 공정한 비트의 생성 로직이 있다면, 그만한 가치가있을 수 있습니다. –