EF 4.1 Code First - заключить несколько транзакций в SaveChanges в транзакцию - PullRequest
2 голосов
/ 13 мая 2011

По причинам, описанным здесь Мне нужно сделать несколько звонков в SaveChanges. Я хотел бы, чтобы оба этих вызова были включены в транзакцию (чтобы в случае сбоя второго вызова первый вызов был отменен). Например:

AccountsContext context = new AccountsContext(connectionString);

CountryNotes notes = new CountryNotes();
notes.Notes = "First save";
context.SaveChanges();

notes.Notes = "Second save";
context.SaveChanges();

Как поместить два вышеуказанных вызова в SaveChanges в одну транзакцию?

Спасибо

Paul.

1 Ответ

2 голосов
/ 13 мая 2011

Использование TransactionScope:

using (var scope = new TransactionScope(TransactionScopeOption.Required, 
    new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
    AccountsContext context = new AccountsContext(connectionString);

    CountryNotes notes = new CountryNotes();
    notes.Notes = "First save";
    context.SaveChanges();

    notes.Notes = "Second save";
    context.SaveChanges();

    scope.Complete();
}
...