Каскадное удаление / обновление в классе LINQ-to-SQL - PullRequest
1 голос
/ 12 июня 2009

Я не удаляю записи навсегда (просто поддерживаю флаг), но мне хотелось бы знать, как работает каскадное удаление / обновление в классе LINQ-to-SQL.

EDIT

Если у меня похожая ситуация, например сохранение флага для опции Delete . Как вы достигаете Каскадное удаление для вашей базы данных ?

Ответы [ 2 ]

2 голосов
/ 15 июня 2009

Удаление на уровне базы данных не является идеальным решением, в этом случае DataContext ничего не знает о том, что объекты уже удалены. Лучший способ - справиться с ситуацией на уровне приложения, используя флаги ассоциации, такие как [Association (... DeleteRule = "cascade" ...)].

0 голосов
/ 12 июня 2009

у вас есть 2 пути, которые я знаю, для него

  1. а) Вы должны определить ограничение на уровне данных ( если существует ограничение FK, то вы должны удалить на каскаде или обновить на каскаде) б) написать хранимую процедуру или функцию или триггер с помощью CTE и использовать его на уровне приложения
  2. взять на себя управление в слое приложения и написать свою функцию Но мой совет сделать это на уровне данных
...