删除foreigntable中的数据时删除外键数据

Delete the foreign key data when the data in the foreign table is deleted

我有2个数据库tables,当我删除外键指向的table中的数据(主键所在的位置)时,外键指向该数据也将被删除。

    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> DeleteConfirmed(int id)
    {

        Report report = await db.Reports
            .Include(i => i.RepFilters)
            .Where(i => i.ID == id).SingleAsync();

        db.Reports.Remove(report);

        await db.SaveChangesAsync();
        return RedirectToAction("Index");
    }

外键不可为空。

(我得到的错误)

如何do/fix那个? (帮我做个正确的标题)

如果您不想通过 SQL 服务器执行此操作,则必须加载 db context 中的所有子对象并将其删除。

当 .Net 或 EF 为您的上下文生成代码时

.WillCascadeOnDelete()

被设置为false,所以只需将其更改为true并尝试是否有效。

您的外键应配置为 关于删除 CASCADE 关于更新 CASCADE。