【发布时间】:2016-03-13 00:40:17
【问题描述】:
我想更新/编辑详细信息,然后将这些详细信息逐行保存到表格中。为此,我刚刚创建了以下 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”是对象的关键信息的一部分,并且 无法修改。
【问题讨论】:
-
你需要在循环中初始化一个
AB_Product_vs_Field的新实例。 -
@StephenMuecke 怎么做
-
teo van kot 刚刚发布了正确答案
-
@StephenMuecke 我能知道这样做的原因吗
-
您当前正在初始化您的
AB_Product_vs_Field的一个实例。在第一个循环中,您设置其 ID 并将其添加到您的数据库上下文(db.Entry()行)。在以下迭代中,您修改了同一实例的 ID,但现在正在跟踪该实例。一旦将 ID 添加到上下文中,您将无法更改它
标签: c# asp.net-mvc linq asp.net-mvc-5