我有一个包含两个表的简单 sqlite 数据库。当我手动删除(使用 SQLite Expert)表 DataSets 中的条目时,OneD 中的对应条目将按预期删除。当我从 Entity Framework 中删除 DataSets 中的条目时,它不会导致 One D 中的核心响应条目被删除。没有产生错误。
知道为什么吗?
问候
这是数据库定义:
CREATE TABLE [DataSets] (
[DataSetId] INTEGER NOT NULL ON CONFLICT FAIL PRIMARY KEY AUTOINCREMENT,
[Description] TEXT(128));
CREATE TABLE [OneD] (
[OneDId] INTEGER NOT NULL ON CONFLICT FAIL PRIMARY KEY ON CONFLICT ABORT AUTOINCREMENT,
[DataSetId] INTEGER NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT ABORT REFERENCES [DataSets]([DataSetId]) ON DELETE CASCADE,
[StockSheetLength] INTEGER NOT NULL ON CONFLICT FAIL);
这是我从 EF 中删除条目的方法
var dataSets = from ds in context.DataSets select ds;
foreach (var ds in dataSets)
context.DataSets.DeleteObject(ds);
context.SaveChanges();
return true;
最佳答案
问题可以通过在连接字符串中启用外键来解决:
data source=mydb.db;foreign keys=true
关于c# - 级联删除不与 EF 级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674318/