Поддержка внешнего ключа в SQLite3

#c# #sqlite #foreign-keys #system.data.sqlite

#c# #sqlite #внешние ключи #system.data.sqlite

Вопрос:

Согласно этому потоку 2010 года, свойство строки подключения «EnforceFKConstraints» должно было быть реализовано в будущих выпусках SQLite. Кто-нибудь знает, нашли ли разработчики время для этого?

Если нет, есть ли другой способ включить поддержку внешнего ключа, не выполняя «PRAGMA foreign_keys = ON» при каждом подключении? Мне это нужно, чтобы убедиться, что удаления всегда выполняются каскадно.

Ответ №1:

Будущее развитие System.Data.SQLite ADO.NET поставщик для SQLite выполняется этой группой. В настоящее время проект находится в статусе миграции, и некоторые функции даже недоступны сейчас (которые были доступны в версии 1.0.66, которая в последний раз поддерживается Робертом Симпсоном (автором оригинальной библиотеки)).

Согласно последнему исходному коду, доступному в магистрали, «EnforceFKConstraints» не поддерживается. Однако есть foreign keys свойство строки подключения, которое имеет значение по умолчанию False , может быть, оно выполняет свою работу? Попробуйте включить foreign keys=True свойство в строку подключения. Обязательно используйте последнюю стабильную сборку из here.

Обновить.Посмотрев глубже в исходный код, я почти уверен, что это свойство строки подключения выполняет именно то, что вы хотите.

Комментарии:

1. Спасибо, это сработало. Мне нужно было обновиться с 1.0.66 до последней версии, на которую вы ссылались.