【发布时间】:2016-02-17 07:42:31
【问题描述】:
我正在尝试将所有 ith 值插入到名为 AB_Product_vs_Field 的表中,但它只插入最后一个 i 值
这是 LINQ 查询
for (int i = 0; i < product.ListProductFields.Count; i++)
{
insertproductvalue.Product_ID = product.Product_ID;
insertproductvalue.Field_ID = product.ListProductFields[i].ProductFieldID;
insertproductvalue.Field_Value_EN = product.ListProductFields[i].Field_Value_EN;
};
db.AB_Product_vs_Field.Add(insertproductvalue);
db.SaveChanges();
如何一一插入所有这些行
【问题讨论】:
-
将
db.AB_Product_vs_Field.Add(insertproductvalue);放入for循环中(您目前只添加最后一个)。你真的应该在for循环中初始化一个新的insertproductvalue实例。 -
@StephenMuecke 然后我得到这个 SystemInvalidOperationException:
{"The property 'Field_ID' is part of the object's key information and cannot be modified. "} -
那么如果是PK字段,去掉
insertproductvalue.Product_ID = product.Product_ID;(保存时会自动生成)- 还是在编辑已有对象? -
Product_ID和Field_ID是这里的复合主键,这些是 varchar 字段,用户必须使用前端视图页面插入Product_ID,Field_ID我正在使用以下行查看页面@Html.HiddenFor(m => m.ListProductFields[i].ProductFieldID)
标签: c# asp.net-mvc linq asp.net-mvc-3 razor