Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架删除SQL_C#_Linq_Entity Framework - Fatal编程技术网

C# 使用实体框架删除SQL

C# 使用实体框架删除SQL,c#,linq,entity-framework,C#,Linq,Entity Framework,我正在尝试删除EF5中的多行 我发现离得更近了 我被如何继续这个问题所震惊,因为我需要使用LINQ(SQL IN)版本,我不想执行SQL 我有一个ID的列表,我需要将其传递给IN。如何在LINQ到实体(EF) 我尝试执行的操作的SQL版本: DELETE FROM TEST WHERE TESTID IN (2,3,4,5) 我需要从列表中传入参数 在EF中实现这一点的最佳方式是什么 谢谢您必须使用循环。您的问题只是一个表面问题,因为使用后: var foo = from item

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

我发现离得更近了

我被如何继续这个问题所震惊,因为我需要使用LINQ(SQL IN)版本,我不想执行SQL

我有一个
ID的列表
,我需要将其传递给IN。如何在
LINQ到实体(EF)

我尝试执行的操作的SQL版本:

DELETE FROM TEST WHERE TESTID IN (2,3,4,5)
我需要从
列表中传入参数

在EF中实现这一点的最佳方式是什么


谢谢

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

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)

为您。

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

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)

对你来说。

所以,使用
包含
没有帮助吗?是的!但我认为我的场景会有更好的方式,通过列表和发布hre!这不是LINQ的任务!LINQ是一种用于数据选择的查询语言,而不是用于执行命令!因此,使用
Contains
没有帮助吗?确实有帮助!但我认为我的场景会有更好的方式,通过列表和发布hre!这不是LINQ的任务!LINQ是一种用于数据选择的查询语言,而不是用于执行命令!也可以使用实体中的DeleteObject方法。db.DeleteObject(项目);也可以使用实体中的DeleteObject方法。db.DeleteObject(项目);