Entity Framework - SQL Server - Обработка транзакций - PullRequest
1 голос
/ 22 августа 2011

Я использую веб-формы ASP.Net, .Net Framework 3.5, Entity Framework В моем приложении я делаю вставки с использованием модели сущностей, а затем вызываю SaveChanges(), я знаю, что в этом случае модель сущностей обрабатывает транзакции, и если какой-либо запрос не выполняется, все будет возвращено.

Но в некоторых случаях я использую SQL-сервер SP для вставки данных в разные таблицы. Этот SP имеет от 4 до 5 запросов на вставку. Я хочу знать, что в случае сбоя одного из запросов в SP модель Entity отменит другие запросы или нет? Я не думаю, что модель сущности справится с этим - верно? Есть ли обходной путь, или мне придется использовать модель Entity для вставки данных для обработки транзакций?

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы можете использовать класс TransactionScope . Это обеспечит атомарную транзакцию

using (TransactionScope scope = new TransactionScope())
{

     mySP.Insert();

     context.SaveChanges();

     scope.Complete();
}
0 голосов
/ 22 августа 2011
...