c# - 级联删除不与 EF 级联

标签 c# entity-framework sqlite

我有一个包含两个表的简单 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/

相关文章:

C# 装箱/包装器 - 自定义类充当整数

c# - 为什么这个 C# 方法不能生成正确的屏幕截图?

c# - LINQ to Entities Include() 不起作用

sql - 如何连接/连接 SQLite 中分组列中的字符串?

c# - WindowsIdentity.GetCurrent().Impersonate() 做什么

c# - 寻找增强算法 : Save game state

c# - MVC 阻止更新某些字段

entity-framework - Entity Framework 模型设计器和 SQL_Variant 数据类型的问题

android - 如何在Sqlite Android中加密数据和存储

iphone - 无法使用 iOS 将数据插入 sqlite3 数据库