Я пытаюсь реализовать логическое удаление senario для всех моих сущностей. Все они имеют логическое свойство IsDeleted. Я также хотел бы каскадное удаление ассоциаций также. Я начал с добавления частичного метода для сущности в текстовый текст данных.
partial void DeleteQuestion(Question instance)
{
instance.IsDeleted = true;
ExecuteDynamicUpdate(instance);
foreach (var answer in instance.Answers)
{
DeleteAnswer(answer);
}
}
Это приводит к ошибке Incorrect syntax near the keyword 'WHERE'
в ExecuteDynamicUpdate. Глядя на sql profiler, я вижу, что предложение set пустое, оно не записывает IsDeleted = true;
как изменение. Я проверил событие IsDeletedChanging, и оно срабатывает, но я думаю, что набор изменений уже создан к этому времени.
Я также попытался отправить изменения вместо вызова ExecuteDynamicUpdate, но это выдает исключение The operation cannot be performed during a call to SubmitChanges.
Я видел идентичное обсуждение здесь с единственным разрешением, заключающимся в использовании хранимых процедур, чего я бы не хотел делать.
Итак, я подумал, давайте спросим SO-сообщество и получим правильный ответ на вершину результатов Google. Похоже, на эту тему мало.
Большое спасибо.