|
|
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Базу данных MSSQL рисую в дизайнере VS2010, использую LINQ. При создании связи по внешнему ключу не понятно как задать правило на удаление/изменение родительской записи. Пробовал вручную редактировать dbml файл, добавляя в тег <Association/> атрибуты: Код: plaintext Код: plaintext Подскажите, пожалуйста, 1)есть ли способ задать правила на удаление/изменение записи кроме как через dbml файл? 2)чего не хватает в описанной схеме, почему запрос, генерируемый DataContext.CreateDatabase(), не содержит указанных директив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 07:30 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
А родительскую-то зачем грохать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 12:48 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Почему нет? Отчего не может потребоваться удалить строку таблицы (или, скажем, потеряться необходимость хранения строки) даже независимо от того имеется ли на неё ссылка по внешнему ключу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:08 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
1. Пересмотрите свою схему БД 2. Переопределяйте OnDeleted и там руками грохайте родителя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:12 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
buredПересмотрите свою схему БД Неужто никогда не встречались с каскадными удалениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:34 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУburedПересмотрите свою схему БД Неужто никогда не встречались с каскадными удалениями? с каскадными удалениями родителя - нет не приходилось, извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:38 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУ, а в чём сакральный смысл удалять родоков? В потомками ещё понятно - надо что-то делать с внешним ключом. А тут не пойму никак... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:43 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
buredс каскадными удалениями родителя - нет не приходилось, извините. Хм. Прошу прощения, а, разве, суть каскадности заключается не в удалении родителя(-ей) и осталных референсных кортежей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:43 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
buredМСУ, а в чём сакральный смысл удалять родоков? В потомками ещё понятно - надо что-то делать с внешним ключом. А тут не пойму никак... Как в чём? Ну не нужна Вам запись родителя и всех его детей. Что тут еще можно сказать P.S. Представьте ситуацию, есть родительская запись и 100 чилдов. Мне нужно 101 раз жмакать кнопку "в печь!", чтобы грохнуть весь этот мусор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:45 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУburedс каскадными удалениями родителя - нет не приходилось, извините. Хм. Прошу прощения, а, разве, суть каскадности заключается не в удалении родителя(-ей) и осталных референсных кортежей? Суть каскадности в удалении осиротевших детей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:53 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
horghПри создании связи по внешнему ключу не понятно как задать правило на удаление/изменение родительской записи. никак. Либо триггер какой. Либо руками в OnDeleting/OnDeleted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 13:55 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
buredhorghПри создании связи по внешнему ключу не понятно как задать правило на удаление/изменение родительской записи. никак. Либо триггер какой. Либо руками в OnDeleting/OnDeleted А зачем, если можно оно может само каскадно грохнуться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 14:20 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Да не грохаются родители вслед за детьми каскадно. Наоборот только. Поэтому у ТС и не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:48 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
buredДа не грохаются родители вслед за детьми каскадно. Наоборот только. Поэтому у ТС и не получается. Ничё не понял. Зачем грохать детей? :) Грохать нужно родителя, а за ним пойдут в печь и ребятишки Мож ТС с референсами напутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:54 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Дрюня, по-моему, Вы сами уже запутались, кто кого должен грохать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:55 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Ну или так, если нет желания установить другое правило для "братьев". Например обнулять внешний ключ. Я поэтому и сказал ТС пересмотреть архитектуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:56 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУДрюня, по-моему, Вы сами уже запутались, кто кого должен грохать Нихуа. Перечитай весь тред. Я глаголил Истину изначально. А вот ты попутал предков и потомков децл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:57 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУДрюня, по-моему, Вы сами уже запутались, кто кого должен грохать ТСПри создании связи по внешнему ключу не понятно как задать правило на удаление/изменение родительской записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:58 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Всё, врубился Вот это buredА родительскую-то зачем грохать? было сказано в контексте того, что типа не нужно убивать родителя при убиении чилда. А я понял этот вопрос, как вообще как-бы нах сносить родителя изначально. Вот и смутился. P.S. Тогда это МСУДрюня, по-моему, Вы сами уже запутались, кто кого должен грохать больше про меня, чем про Вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 16:59 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
МСУ, ну да. Я ж говорю у ТС как-то через попенс всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 17:01 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
bured, ага, тогда по поводу кривизны схемы БД +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 17:02 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
И все же меня не так поняли, я, видимо, некорректно выразился...родителя не требуется убивать при удалении потомка...требуется при необходимости удаления родителя каскадно удалять всех потомков, самый тривиальный вариант использования каскадного удаления записей, не более... Проблема в том, что БД генерится при помощи Linq2SQL и ON DELETE CASCADE не попадает в генерируемые SQL запросы, хотя в dbml файле соответствующие атрибуты выставлены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 04:19 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
HorghПри создании связи по внешнему ключу не понятно как задать правило на удаление/изменение родительской записи Имелось в виду правило, которое должно выполняться при удалении\изменении родительской записи (не потомков), а следовательно - определяет, что должно происходить с потомками при удалении этого самого родителя. Ежу ж ведь понятно, что если дочернюю запись удаляют, родителю вообще по барабану... buredСуть каскадности в удалении осиротевших детей ...в самую точку, это и нужно, но не получается! Все должно при вызове CreateDatabase автоматически создаваться, стало быть я не верно dbml файл составил, а что не верно абсолютно не ясно...атрибуты DeleteRule и DeleteOnNull ставил и потомку, и родителю, и одновременно обоим...один фиг LINQ генерит SQL-запрос, в котором нет ON DELETE CASCADE...хотя в файл *.designer.cs эти атрибуты проставляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 04:28 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
Кроме dbml в схеме БД правило должно стоять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 13:51 |
|
||
|
LINQtoSQL: как задать атрибут DeleteRule на удаление родительской записи по внешнему ключу
|
|||
|---|---|---|---|
|
#18+
О какой схеме Вы говорите? Схема и генерируется на основе dbml файла...Любое изменение на графической форме схемы БД фактически редактируют dbml-файл...графический дизайнер ни что иное, как средство редактирования оного, да и служит для отражение структуры БД на сущностные файлы, которые фактически также генерируются на основе dbml файла... Если речь шла о схеме БД в дизайнере, то мне не удалось найти вообще никаких средств задания подобных правил, только напрямую отредактировать dbml файл, однако ожидаемого результата не оказалось. Вы не могли бы подсказать, где можно эти правила задавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2010, 04:28 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36713269&tid=1351209]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 477ms |

| 0 / 0 |
