给定代码:
var q = db.TranslationProjectKeys.Where(c => c.ProjectID == forProject.ID);
foreach (var key in q)
{
key.Live = false;
}
db.SubmitChanges();
如果运行SQL Server Profiler,它将显示数十条UPDATE....
SQL语句。我相信,如果使用一条UPDATE
语句执行此查询,则速度会更快:
UPDATE TranslationProjectKeys SET Live = 0 WHERE ProjectID = x
有没有一种方法可以使查询以这种方式执行?
我很警惕使用它,db.ExecuteCommand("...")
因为我知道可以缓存上下文,这可能会导致一些错误。
您可以使用EntityFramework.Extended。您可以执行多个更新。例如
var q = db.TranslationProjectKeys.Where(c => c.ProjectID == forProject.ID).Update(c => new TranslationProjectKey{ Live = false })
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句