c# - 在 C# 中使用 for 循环逐行更新表格

标签 c# asp.net-mvc linq asp.net-mvc-5

我想更新/编辑详细信息,然后将这些详细信息逐行保存到表格中。为此,我刚刚创建了 Linq 查询

AB_Product_vs_Field insertproductvalue = new AB_Product_vs_Field();

for (int i = 0; i < product.ListProductFields.Count; i++)
{
   insertproductvalue.Product_ID = product.Product_ID;
   insertproductvalue.Field_ID = product.ListProductFields[i].Field_ID;
   insertproductvalue.Field_Value_EN = product.ListProductFields[i].Field_Value_EN;
   insertproductvalue.Field_Value_AR = product.ListProductFields[i].Field_Value_AR;

   db.Entry(insertproductvalue).State = System.Data.Entity.EntityState.Modified;
   db.SaveChanges();
};

但随后出现以下错误

The property 'Field_ID' is part of the object's key information and cannot be modified.

最佳答案

正如 Stephen Muecle 所说:

for (int i = 0; i < product.ListProductFields.Count; i++)
{
   AB_Product_vs_Field insertproductvalue = new AB_Product_vs_Field();
   insertproductvalue.Product_ID = product.Product_ID;
   insertproductvalue.Field_ID = product.ListProductFields[i].Field_ID;
   insertproductvalue.Field_Value_EN = product.ListProductFields[i].Field_Value_EN;
   insertproductvalue.Field_Value_AR = product.ListProductFields[i].Field_Value_AR;
   db.Entry(insertproductvalue).State = System.Data.Entity.EntityState.Modified;

};
db.SaveChanges();

您还应该注意到我将 SaveChanges 移到了循环之外。这更好,因为所有更改都将立即提交或不提交(如果您有错误)。

关于c# - 在 C# 中使用 for 循环逐行更新表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34150041/

相关文章:

c# - 我可以从不记名 token Web API 中检索用户名/身份以外的信息吗

c# - 组合框自动完成自定义功能

c# - 如何清理异常字符串以便可以通过 Javascript Alert 显示?

html - 按钮始终右对齐

c# - 提高自动完成 LINQ 查询的性能

c# - 首先按字母值对列表排序,然后按数值排序

c# - 如何对列表进行类型转换?

javascript - ASP.NET MVC 部分 View ajax 帖子?

asp.net-mvc - 如何使用Moq对HtmlHelper进行单元测试?

c# - 从自引用数据库表填充递归数据结构