【问题标题】:How to execute an update on multiple rows using Linq Lambda Expression in ASP.Net MVC?如何在 ASP.Net MVC 中使用 Linq Lambda 表达式对多行执行更新?
【发布时间】:2019-06-14 05:19:41
【问题描述】:

我很难尝试对表中的多行执行更新。

我试过这段代码:

PayoutEntities payoutdb = new PayoutEntities();

public void SaveStatusBatch(string batchid)
{
   payout_transaction data = payoutdb.payout_transaction.Where(x => x.batchid == batchid).FirstOrDefault();
   data.status = "Success";
   payoutdb.SaveChanges();
}

但它只更新一个单行,其中batchid 与参数中指示的内容匹配。我在这里使用Èntity Framework

这就是我的桌子的样子:

|batchid|name|status|
|1      |John|      |
|1      |Nick|      |
|1      |Bill|      |
|2      |Ara |      |

我想将 John、Nick 和 Bill 的状态更新为 Success。 你对我该怎么做有什么建议吗?

【问题讨论】:

    标签: asp.net-mvc entity-framework linq lambda


    【解决方案1】:

    概念是改变所有数据然后调用DBContext对象的SaveChanges。例如:

    public void SaveStatusBatch(string batchid)
    {
          payout_transaction data = payoutdb.payout_transaction
            .Where(x => x.batchid == batchid)
            .ToList();
    
          data.ForEach(a=> a.status = "Success");
          payoutdb.SaveChanges();
    }
    

    【讨论】:

    • 谢谢你,没想到这么简单 :)
    • 很高兴它有帮助:)
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 2015-01-24
    • 2016-07-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多