Я создал ограничение внешнего ключа ON DELETE SET DEFAULT в базе данных и назначил значение по умолчанию.
Что я пробовал:
- В приложении.Config: я добавил « внешние ключи = true; » в строку подключения.
- Я отредактировал набор данных XSD
- Я изменил DataSet наWinForm и применил его там: EnforceConstraints = true
- Я проверил, моя версия SQLite достаточно высока для поддержки этого (я использую v1.0.110.0)
- Iневозможно использовать команду PRAGMA (как показано здесь: Включение ограничений внешнего ключа в SQLite ), поскольку данные связаны с элементами управления.
- Я перестроил проект.
- Я попробовал это в SqliteStudio и там ограничение работает, но в C # это не работает.
Что я мог пропустить ...
Обновление: App.Config был каким-то образом не синхронизирован с настройками проекта, поэтому дополнительные параметры не были включены в сборку.Однако добавление параметра через свойства проекта приводит к ошибке.
"Data Source=.\InventoryManagerDatabase.db;foreign keys=true;"
Ошибка:
System.InvalidOperationException: 'Неизвестный параметр строки подключения' внешние ключи '.'
Видимо этот параметр не существует?Я проверил различные ресурсы, включая Включение ограничений внешнего ключа в SQLite & SQLite EF6 программно устанавливает строку подключения во время выполнения , но это странно ... SQLite удалил этот параметр или переименовал его?
Я также пытался (как и комбинации чувствительности к регистру):
EnforceFKConstraints=True;
foreign key=true;
foreign keys=true;
foreign_keys=true;
ForeignKeys=true;
Foreign Key Constraints=true;
PRAGMA foreign_keys = ON; // obviously does not work
Но ничего не работает ...