C# 使用实体框架删除SQL
我正在尝试删除EF5中的多行 我发现离得更近了 我被如何继续这个问题所震惊,因为我需要使用LINQ(SQL IN)版本,我不想执行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
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(项目);