首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更新多行Linq vs SQL

更新多行Linq vs SQL
EN

Stack Overflow用户
提问于 2008-12-08 00:32:32
回答 3查看 14K关注 0票数 17

不久前,我写了一段代码来更新数据库表中的多个行。代码是这样的

代码语言:javascript
复制
var db = new MyDataContext();
db.Execute("UPDATE Details SET IsActive = 0 WHERE MasterId = 1");

然后有一天,当我得到文件的最新版本时,我看到有人将代码更改为如下所示

代码语言:javascript
复制
var details = from d in db.details where d.MasterId == 1 select d;
foreach (var detail in details)
  detail.IsActive = false;
db.SubmitChanges();

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

EN

回答 3

Stack Overflow用户

发布于 2008-12-08 00:42:12

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

票数 9
EN

Stack Overflow用户

发布于 2009-11-12 05:49:52

PLINQO已经实现了批量更新和删除,plinqo生成的每个实体都可以使用批量更新和删除操作。

代码语言:javascript
复制
context.Task.Update(t => t.Id == 1, t2 => new Task {StatusId = 2});

这将执行一个Update Task Set StatusId = 2 Where Id = 1

票数 4
EN

Stack Overflow用户

发布于 2010-07-29 01:48:35

代码语言:javascript
复制
for (int i = 0; i < pListOrderDetail.Count; i++)
{
    for (int j = 0; j < stempdata.Count; j++)
    {
        pListOrderDetail[i].OrderID = pOrderID;
        pListOrderDetail[i].ProductID = stempdata[j].pProductID;
        pListOrderDetail[i].Quantity = stempdata[j].pQuantity;
        pListOrderDetail[i].UnitPrice = stempdata[j].pUnitPrice;
        pListOrderDetail[i].Discount = stempdata[j].pDiscount;
        db.SubmitChanges();
        break;
    }
    continue;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/348417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档