首页 > 解决方案 > 使用 SQLite 和 C# 强制外键约束

问题描述

我在数据库中创建了一个外键约束ON DELETE SET DEFAULT并分配了一个默认值。

我尝试了什么:

我可能错过了什么......

更新: 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

但是没有任何效果...

标签: c#sqlite

解决方案


终于找到了!

解决方案:

connectionString="Data Source=.\YourDatabaseName.db;Foreign Key Constraints=On;Version=3;"

是的,他们在某处将其更改为Foreign Key Constraints=On并且 Google 上的每个页面(包括 StackOverflow)仍然​​显示旧参数...


推荐阅读