Linq to Sql Создание проблемы с внешним ключом базы данных - PullRequest
1 голос
/ 18 июля 2011

Я использую LINQ to SQL в проекте. Я использую метод DataContext.CreateDatabase () для создания базы данных.

Существует одна мастер-таблица с идентификатором OK

В других таблицах этот идентификатор называется FK. Я установил роль обновления и удаления в Cascade в FK . Поэтому при удалении записи из основной таблицы все ссылочные записи автоматически удаляются из всех дочерних таблиц.

Если я удаляю базу данных и запускаю свое приложение, которое проверяет существование базы данных при запуске. Это создает базу данных успешно. Но проблема в созданном ФК. Для роли «Обновление и удаление» задано значение «Без действия» вместо «Каскад». Из-за этого мне нужно вручную изменить всю спецификацию «Обновление и удаление FK» на «Каскад»

Кто-нибудь сталкивался с этой проблемой? Какое решение?

1 Ответ

0 голосов
/ 18 июля 2011

Вы можете использовать DeleteOnNull=true для удаления из ассоциаций.

Обратите внимание, что DeleteOnNull - это не то же самое, что каскад при удалении, поскольку это удаление выполняется в коде c #, а не в базе данных.- см. этот блог для деталей http://blogs.msdn.com/b/dinesh.kulkarni/archive/2008/05/11/linq-to-sql-tips-4-use-deleteonnull-if-you-want-to-delete-object-with-null-fk.aspx

...