Linq SaveChanges вопрос - PullRequest
       7

Linq SaveChanges вопрос

0 голосов
/ 20 августа 2009

Стоит ли мне проверять, правильно ли сохранены объекты?

if (objectContext.SaveChanges() > 0)

Должно просто сгенерировать исключение, если нет, верно?

Ответы [ 2 ]

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

Согласно MSDN :

SaveChanges работает в сделка. SaveChanges покатится поддержать эту сделку и бросить Исключение, если любой из грязных Объекты ObjectStateEntry не могут быть сохраняется.

Так что вместо этого вы захотите попробовать / перехватить исключение. Если вы хотите узнать количество затронутых записей, то в блоке try у вас будет int recordsAffected = objectContext.SaveChanges();

Посмотрите на ссылку MSDN для примера.

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

Согласно документации msdn , метод SaveChanges () возвращает количество записей «Добавлено», «Изменено» или «Удалено». Это могут быть исключения InvalidOperationException или OptimisticConcurrencyException.

Я думаю, что есть какая-то ценность в проверке количества записей. Если вы выдаете действительный оператор, который пытается изменить или удалить, но изменить или удалить нечего, он просто вернет 0, даже если не будет исключения, потому что технически ничего плохого не произошло.

...