2012-05-31 25 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。因爲當你更新它時,基本上會嘗試更新該行上出現的所有字段。

但它仍然很奇怪,爲什麼第一行的更新沒有成功。