Удалить Entity Framework Entity, которая может или не может существовать - PullRequest
1 голос
/ 22 марта 2012

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

Я использую эту рекомендацию

https://stackoverflow.com/a/5522422/141172

var category = new Category() { CategoryId = 1 };
context.Categories.Attach(category);
context.Categories.Remove(category);
context.SaveChanges();

для удаления сущностей.Однако, если объекты уже были удалены (например, предыдущий тестовый запуск был успешно очищен),

ctx.SaveChanges();

выдает исключение:

Сохранение оператора обновления, вставки или удаления, затронувшегонеожиданное количество строк (0)

Это имеет смысл, но просто ловить исключение немного неловко.Есть ли более чистый способ сделать это, не вводя дополнительную поездку в БД для проверки сущности?

1 Ответ

2 голосов
/ 22 марта 2012

Самый простой и чистый способ сделать это - не использовать поддельную сущность, а выполнить простой запрос SQL:

var rows = context.Database.ExecuteSqlCommand("delete Category where ...");
if (rows == 0)
    //nothing was deleted
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...