Проверьте, была ли вставка или обновление прошло успешно в Entity Framework - PullRequest
6 голосов
/ 26 августа 2009

В ADO.NET, ExecuteNonQuery () «Для операторов UPDATE, INSERT и DELETE возвращаемое значение - это количество строк, затронутых командой» (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx)

В EF v1 метод context.SaveChanges () возвращает «Количество объектов в состоянии« Добавлено »,« Изменено »или« Удалено »при вызове SaveChanges».) (http://msdn.microsoft.com/en-us/library/bb739065.aspx)

Пожалуйста, сообщите, когда несколько сущностей (или единственная сущность) добавляются или обновляются в контексте и контексте. Вызывается метод SaveChanges (), как проверить, был ли действительный INSERT или UPDATE успешным.

Можем ли мы предположить, если не было никаких исключений, что INSERT (s) или UPDATE (s) были успешными?

Спасибо

Ответы [ 2 ]

13 голосов
/ 26 августа 2009

Да, если нет исключений, вы можете считать, что операторы выполнены успешно.

2 голосов
/ 26 августа 2009

Возможно, это не прямой ответ на вопрос, но может помочь. По умолчанию все команды инкапсулированы в одну DbTransaction при вызове метода SaveChanges ( Джулия Лерман, Programming Entity Framework ). Итак, либо все команды будут успешно выполнены, либо ни одна. Это один из способов узнать, было ли успешно выполнено вставка, обновление или удаление.

...