0

我正在尝试删除 EF5 中的多行。

我发现更接近的是 如何删除实体框架中的多行(没有 foreach)

我对如何进行此操作感到震惊,因为我需要使用 LINQ(SQL IN)Version 并且我不想执行 SQL。

我有一个列表,ID's我需要将其传递给 IN。我如何实施LINQ to Entities(EF)

我正在尝试做什么的 SQL 版本:

DELETE FROM TEST WHERE TESTID IN (2,3,4,5)

我需要从. 传递 IN 参数LIST<ID>

在 EF 中实现此功能的最佳方法是什么?

谢谢

4

1 回答 1

5

您必须使用循环。您的问题只是表面问题,因为使用后:

var foo =
    from item in db.Test
    where idlist.Contains(item.TESTID)
    select item;

foreach (var item in foo)
{
    db.Entry(item).State = EntityState.Deleted;
}

db.SaveChanges();

EF 将创建类似的东西

DELETE FROM TEST WHERE TESTID IN (2,3,4,5)

为你。

于 2013-05-23T06:56:33.577 回答