如何使用Entity Framework删除多个相同的行

时间:2017-11-08 10:23:15

标签: entity-framework

我表中的一些记录是重复的。尝试删除它们时,我收到此错误:

  

数据库操作预计会影响1行但实际上会影响2行。自实体加载以来,数据可能已被修改或删除。

被调用的查询是一个简单的" DELETE FROM [] WHERE []"。我尝试过使用Remove方法,以及设置EntityState.Deleted。在这两种情况下,它都希望删除调用只能命中一行,但它会命中两行。

如何删除适合我传递给它的参数的任意数量的行?

1 个答案:

答案 0 :(得分:0)

显然EF不包含任何类型的批量删除,但有一个扩展名:http://entityframework-plus.net/

可以在NuGet上找到Z.EntityFramework.Plus

用它可以链接Where和Delete:

public Test(List<String> list) { mWorkList = new ArrayList<>(list); mOriginalList = new ArrayList<>(list); }

using System.Collections; using System.Collections.Generic; using UnityEngine; public class ExtraBallController : MonoBehaviour { public Transform target; private int distance = 30; // Use this for initialization void Start () { } // Update is called once per frame void Update () { this.transform.position = new Vector3 (target.transform.position.x, target.transform.position.y, distance); } }

无论行数如何,这都会有效,即使它们是重复的。