C# 不使用foreach更新整个集合的值
我目前正在我的联系人表中循环,并使用C# 不使用foreach更新整个集合的值,c#,entity-framework,C#,Entity Framework,我目前正在我的联系人表中循环,并使用foreach循环将他们的IsCustomer标志设置为false using (var db = new Entities(cs)) { foreach (var contact in db.Contacts) contact.IsCustomer = false; db.SaveChanges(); } 我注意到这个过程需要很长时间。有没有一种方法可以将我的所有联系人IsCustomer标记设置为false而不逐个设置?或
foreach
循环将他们的IsCustomer
标志设置为false
using (var db = new Entities(cs))
{
foreach (var contact in db.Contacts)
contact.IsCustomer = false;
db.SaveChanges();
}
我注意到这个过程需要很长时间。有没有一种方法可以将我的所有联系人
IsCustomer
标记设置为false而不逐个设置?或者有没有更快的方法呢?正如@Jeroen Vannevel所建议的那样 using (Entities db = new Entities())
{
int changed = Entities.Database.ExecuteSqlCommand("Update Contact set IsCustomer = 0");
}
这个问题有望解决你的问题 最好使用这个
但如果您不想将其添加到项目中,则
您可以使用简单的SQL语句。
正如@Jeroen Vannevel所建议的那样
这个问题有望解决你的问题 最好使用这个
但如果您不想将其添加到项目中,则
您可以使用简单的SQL语句。
正如@Jeroen Vannevel所建议的那样
这个问题有望解决你的问题 最好使用这个
但如果您不想将其添加到项目中,则
您可以使用简单的SQL语句。
正如@Jeroen Vannevel所建议的那样
这个问题有望解决你的问题 最好使用这个
但如果您不想将其添加到项目中,则
您可以使用简单的SQL语句。
出于性能原因,您可以直接执行更新查询。使用db.Database.executesQLCommand,实际的数据库更新将比更新内存中对象花费的时间高出几个数量级。在这个过程中,这一部分几乎可以忽略不计。出于性能原因,您可以直接执行更新查询。使用db.Database.executesQLCommand,实际的数据库更新将比更新内存中对象花费的时间高出几个数量级。在这个过程中,这一部分几乎可以忽略不计。出于性能原因,您可以直接执行更新查询。使用db.Database.executesQLCommand,实际的数据库更新将比更新内存中对象花费的时间高出几个数量级。在这个过程中,这一部分几乎可以忽略不计。出于性能原因,您可以直接执行更新查询。使用db.Database.executesQLCommand,实际的数据库更新将比更新内存中对象花费的时间高出几个数量级。在这个过程中,这一部分几乎可以忽略不计。
using (var context = new BloggingContext())
{
context.Database.SqlCommand(
"UPDATE dbo.Blogs SET Name = 'Another Name' WHERE BlogId = 1");
}