以下のコードは、次の例外をスローします。私は何を間違っていますか?
エラー スタック: System.Transactions.TransactionAbortedException: トランザクションが中止されました。---> System.Data.SqlClient.SqlException: このトランザクションで処理中の保留中の要求があるため、トランザクション操作を実行できません。
public class NestedTransaction
{
public void SomeTransaction()
{
using (var context = new SomeDBContext())
{
using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
context.Connection.Open();
List<SomeEntities> entities = GetEntitiesFromDatabase();
entities.ForEach(entity =>
{
SaveEntity((EntityConnection)context.Connection, entity);
});
context.SaveChanges();
context.Connection.Close();
transaction.Complete();
}
}
}
private static void SaveEntity(EntityConnection connection,SomeEntity entity)
{
foreach (SomeEntity childEntity in entity.ChildEntities)
{
SaveEntity(connection, childEntity)
}
}
}
よろしくお願いします