2015-05-25 51 views
1

我使用实体框架5创建了一个MVC应用程序。我需要使用查询从表中删除数据。我做了一个记录删除,但现在我有要求一次删除多个记录。一次删除多个记录实体框架5

My Table USER: 
Id  Name  cityId 
1  Rajesh  1 
2  Rahul  1 
3  Sulagna  1 
4  Rajoshri 2 
5  Deb   2 

现在我需要删除哪个地方我都试过cityid = 1

代码:

List<USER> listUser = new List<USER>(); 
listUser = db.USERs.Where(w => w.cityId == 1).ToList(); 
db.Entry(listUser).State = System.Data.EntityState.Deleted; 
db.SaveChanges(); 

但它给错误。

我已搜索并找到RemoveRange方法删除多个记录。但是RemoveRange在我的项目中不可用。

+0

可能重复[如何与实体框架ASP.Net MVC 5删除多条记录?(http://stackoverflow.com/questions/27192920/how-to-delete-multiple-records-with- entity-framework-asp-net-mvc-5) –

+0

@JaiminSoni我ahev试过。 – Raghubar

+0

我有回覆帖子。尝试 –

回答

0

试试这个:

foreach (var user in db.USERs.Where(u => u.cityId == 1).ToList()) { 
    db.USERs.Remove(user): 
} 
db.SaveChanges(); 

随着EF6更容易:

db.USERs.RemoveRange(db.USERs.Where(u => u.cityId == 1)); 
db.SaveChanges(); 

让我知道如果这能帮助,

阿尔贝托

+0

RemoveRange不可用。我试过了。 – Raghubar

+0

您是否插入了所需的NS? using System.Data; using System.Data.Entity; – Alberto

+0

我已经添加它不可用。你在实体框架5中尝试过吗? – Raghubar

-1

这从DB帮助remove使用Entity Framework

代码:db.USERs.RemoveRange(db.USERs.Where(w => w.cityId == 1));

+0

RemoveRange在EF5中不起作用。 –

1

对于EF5你需要安装EF扩展库: 后EntityFramework.Extended成功地安装试试这个下面的代码。

var query = from c in db.USERs 
       where c.cityId == 1    
       select c; 
query.Delete(); 
+0

它也适用于EF5。 –