更新多行Linq vs SQL

Mar*_*ioh 17 .net sql linq

前段时间我写了一段代码来更新数据库表中的多行.代码是这样的

var db = new MyDataContext();
db.Execute("UPDATE Details SET IsActive = 0 WHERE MasterId = 1");
Run Code Online (Sandbox Code Playgroud)

然后有一天,当我得到文件的最新版本时,我看到有人将代码改为这样的东西

var details = from d in db.details where d.MasterId == 1 select d;
foreach (var detail in details)
  detail.IsActive = false;
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:更新多行的更好方法是什么?使用Linq还是SQL?

CMS*_*CMS 14

检查本文中使用的方法:


tva*_*son 9

我要说这取决于数据库的效率或抽象对您来说是否更重要.SQL方法将在您的代码中创建一个更难跟踪的依赖项,但效率更高.引用的LINQ示例删除了对手动编码SQL的依赖性,但涉及至少2个查询和一些服务器端处理.