我想更新/编辑详细信息,然后逐行将这些详细信息保存到表中。因为我刚刚创建了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();
};
然后我收到了以下错误
属性&#39; Field_ID&#39;是对象关键信息的一部分 无法修改。
答案 0 :(得分:3)
斯蒂芬·穆勒说:
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
移到了循环之外。因为所有更改都会提交或不提交(如果您有错误)。