C# 使用foreach和实体框架删除许多项
详情请参阅: 数据库记录 JN_国家记录: JN_玩家记录: 这是我的代码:C# 使用foreach和实体框架删除许多项,c#,entity-framework,C#,Entity Framework,详情请参阅: 数据库记录 JN_国家记录: JN_玩家记录: 这是我的代码: List<int> ids=new List<int> {12, 14}; foreach (var item in ids) { try { _service.Delete(item); }
List<int> ids=new List<int> {12, 14};
foreach (var item in ids)
{
try
{
_service.Delete(item);
}
catch (Exception e)
{
}
}
List id=新列表{12,14};
foreach(ID中的变量项)
{
尝试
{
_服务。删除(项目);
}
捕获(例外e)
{
}
}
第一次=>项目是12
错误:
InnerException{“DELETE语句与引用冲突
约束\“FK_dbo.JN_玩家\ u dbo.JN_国家\ u JN_国家\ ID\”
数据库“JuventusApk\”表中发生冲突
\“dbo.JN\u Players\”,列“JN\u Country\u ID”。\r\n该语句已被删除
终止。“}System.Exception{System.Data.SqlClient.SqlException}
这是真的,因为他为这个国家注册了一名球员
第二次=>项目为14
错误:
InnerException{“DELETE语句与引用冲突
约束\“FK_dbo.JN_玩家\ u dbo.JN_国家\ u JN_国家\ ID\”
数据库“JuventusApk\”表中发生冲突
\“dbo.JN\u Players\”,列“JN\u Country\u ID”。\r\n该语句已被删除
终止。“}System.Exception{System.Data.SqlClient.SqlException}
这不是真的。这个国家没有注册球员。发生此错误的原因您的_service.Delete()方法是否重用了相同的上下文?数据库似乎认为这是真的。您确定约束是按您认为的方式定义的吗?你确定数据处于你认为的状态吗?您什么时候将更改从数据上下文提交到数据库?旁注:空
catch
块是一个众所周知的坏主意。我会查看外键,以确保它确实在做我们“假设”它正在做的事情。你也能把它寄出去吗?