2015-05-25 90 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。 –