Entity framework 实体框架:删除多个查询对象

Entity framework 实体框架:删除多个查询对象,entity-framework,Entity Framework,我有一个列表,其中包含我要删除的集合中许多对象的PK ID。有人知道如何编写一个查询来检索这些对象吗 例如: IList对象列表;//用int主键ID填充 使用(MyEntities context=new MyEntities()){ var result=context.MyObjectCollection.Where(objectList中的obj=>obj.ID); foreach(结果中的var项目){ 上下文。删除对象(项目); } SaveChanges(); } 任何帮助都将不

我有一个列表,其中包含我要删除的集合中许多对象的PK ID。有人知道如何编写一个查询来检索这些对象吗

例如:

IList对象列表;//用int主键ID填充
使用(MyEntities context=new MyEntities()){
var result=context.MyObjectCollection.Where(objectList中的obj=>obj.ID);
foreach(结果中的var项目){
上下文。删除对象(项目);
}
SaveChanges();
}

任何帮助都将不胜感激

Mel的答案不起作用,因为在.NET3.5SP1中,EF不知道如何将list.Contains(…)转换为t-SQL。虽然这是4.0版

var result = context.MyObjectCollection.Where(obj=> objectList.Contains(obj.ID));
解决方法是手动生成一个大的或查询,即

Where(obj => obj.ID == item1 || obj.ID == item2 ....)
下面是我写的一个技巧,可以让这变得简单:

希望这有帮助

亚历克斯·詹姆斯

实体框架团队-阅读我的

Where(obj => obj.ID == item1 || obj.ID == item2 ....)
this.Devices.Update(o => new Device() { LastOrderRequest = DateTime.Now, Description = "teste" }, o => o.Id == 1);