一次删除多个记录实体框架5

时间:2015-05-25 08:34:51

标签: asp.net-mvc linq entity-framework

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

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。

3 个答案:

答案 0 :(得分:1)

对于EF5,您需要安装EF扩展库:EntityFramework.Extended 成功安装后,请尝试以下代码。

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

答案 1 :(得分: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();

如果有帮助,请告诉我,

阿尔贝托

答案 2 :(得分:-1)

这有助于remove使用Entity Framework

从数据库中db.USERs.RemoveRange(db.USERs.Where(w => w.cityId == 1));

代码: var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://xxxx.desk.com/api/v2/cases"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Accept = "text/xml"; httpWebRequest.Method = "GET"; httpWebRequest.Credentials = new NetworkCredential("username", "password"); httpWebRequest.Headers.Add("Authorization", "Basic reallylongstring"); var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); string text; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { string fddf = streamReader.ReadToEnd(); }