使用c#中的for循环逐行更新表
本文关键字:逐行 更新 循环 for 中的 使用 | 更新日期: 2023-09-27 18:26:01
我想更新/编辑详细信息,然后逐行将这些详细信息保存到表中。为此,我刚刚创建了以下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();
};
但是我得到了以下错误
属性"Field_ID"是对象密钥信息的一部分,并且无法修改。
正如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
移动到循环之外。最好是所有更改都会同时提交或不提交(如果您有错误)。