2012-05-31 24 views
0

我有一个名为“订单明细”表中包含4个领域得到了错误:不更新主键,但仍使用实体框架

OrderID // (primary key of Orders table) 
ItemID // (primary key of Items table) 
Amount 
IsImportant 

OrderDetails表的主键是由前两个字段组成。

我在我的asp.net网站有一个gridview显示所选订单的订单详情。

我想更新gridview中的一行。用户只能更新Amount, IsImportant档案。 对于第一个除外的所有行我得到尝试更新行时此错误:

的财产“项目Id”是对象的关键信息部分, 不能修改。

I read,这是不可能的,更新的主键,但是这是奇怪,因为

  1. 我并不想以更新的主键,只有该领域的其他
  2. 更新gridview中的第一行确实成功了。

谢谢!

+0

它是一个sqlException或EF异常?如果这是从DB发送的,请检查通过Profiler工具 – Dave

+0

传递的查询是否有帮助 - 在ItemID属性的setter中的ReportPropertyChanging(“ItemID”)行处抛出错误。这段代码在文件'model.designer.cs'中自动生成。该模型是我的EF名称。 – remi

+0

此属性的StoreGeneratedPatern是否设置为Identity? – Dave

回答

0

我不确定这是你正在寻找,但尝试将有问题的关键字列设置为可见= false。因为当你更新它时,基本上会尝试更新该行上出现的所有字段。

但它仍然很奇怪,为什么第一行的更新没有成功。