删除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。
我有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。