asp.net-mvc - 使用 linq 查询更新 mvc5 中的所有列记录
问题描述
我想使用 linq 查询更新 MVC5 中特定列的所有记录
var PriceRecord = db.tblPurchasePrices.Where(z => z.ID == id).SingleOrDefault();
var PurchasePriceList = db.tblPurchasePrices.Where(z => z.SizeID == PriceRecord.SizeID && z.ProductID == PriceRecord.ProductID && z.CategoryID == PriceRecord.CategoryID).ToList();
foreach (var item in PurchasePriceList)
{
item.IsActive = false;
db.SaveChanges();
}
我不想使用 foreach 循环来一一更新记录并保存更改。我希望特定列中的所有值一次更新。
解决方案
试试这个代码,你可以一次保存所有更改到 DB:
foreach (var item in PurchasePriceList)
{
item.IsActive = false;
db.Entry(item).State = EntityState.Modified;
}
db.SaveChanges();
或其他语法:
foreach (var item in PurchasePriceList)
{
item.IsActive = false;
db.Entry(item).Property(i=> i.IsActive).IsModified = true;
}
db.SaveChanges();
另一种可能更快(可能不是)更新批量数据的方法是创建一个带有 PriceRecord 参数的存储过程并像这样执行:
db.Database.ExecuteSqlCommand("stored_procedure_name @params", params);
推荐阅读
- python - 如何修复错误消息:“chromedriver.exe”可执行文件可能具有错误的权限
- python - 为什么在使用 urlopen() 时出现回溯错误?
- ant - 无法在 wso2 esb home/bin 目录中构建 build.xml 文件
- c - 函数中的 scanf 似乎将垃圾值写入一个数组而不是另一个数组,尽管两者是相同的
- python - Spark 独立无法加载文件
- java - 在 android studio 中添加 .aidl 接口
- c# - 基于 URL 参数的多个视图文件夹
- python - 如何在PyQt5中获取其他小部件的mousePressEvent的返回值
- python - 连接到 RedShift 导致 SSL 错误:证书验证失败
- email - 使用 PHPmailer 将所有邮件都放在垃圾邮件文件夹中