不使用foreach更新整个集合的值

时间:2015-08-18 11:17:51

标签: c# entity-framework

我目前正在遍历 Contact 表并使用IsCustomer循环将foreach标记设置为false。

using (var db = new Entities(cs))
{
    foreach (var contact in db.Contacts)
        contact.IsCustomer = false;
    db.SaveChanges();
}

我注意到这个过程需要很长时间。有没有办法将我的所有 Contacts IsCustomer标志设置为false而不逐一设置它们?或者有更快的方法吗?

2 个答案:

答案 0 :(得分:2)

正如@Jeroen Vannevel所建议的那样 Stackoverflow
希望这个问题可以解决你的问题,

最好是使用这个 EntityFramework.Extended
但如果你不想将它添加到你的项目中,那么就是 您可以使用简单的SQL语句 msdn

using (var context = new BloggingContext()) 
{ 
    context.Database.SqlCommand( 
        "UPDATE dbo.Blogs SET Name = 'Another Name' WHERE BlogId = 1"); 
}

答案 1 :(得分:1)

    using (Entities db = new Entities())
    {
        int changed = Entities.Database.ExecuteSqlCommand("Update Contact set IsCustomer = 0");
    }