【茶包射手日記】EF4 StoreGeneratedPattern設定無效

Entity Framework有個Store Generated Pattern屬性可因應新增資料庫欄位採自動跳號的需求。

今天測試時發現該設定不管用,新增至資料庫時持續傳回Primary Key重複錯誤,顯示設定未生效。爬文發現這是EF4的Bug(原本預期已在VS2010 SP1修復,看來不然),目前知道的解決方法是在Solution Explorer的edml項目按右鍵View Code叫出edmx,直接修改SSDL XML,自己補上StoreGeneratedPattern Attribute(如黃底文字)。

<EntityType Name="MYTABLE">
  <Key>
    <PropertyRef Name="PKCOL" />
  </Key>
  <Property Name="USERID" Type="VARCHAR2" Nullable="false"/>
  <Property Name="KEYINDATE" Type="DATE" Nullable="false"/>
  <Property Name="PKCOL" Type="decimal" Nullable="false" 
   StoreGeneratedPattern="Identity"/>

但要注意,每次使用GUI設計介面編輯edml儲存後,edmx就會被覆寫,原本手動加上的Attribute將會消失(見下方更新補充說明)。是的! 解決方法是要乖乖手動再把它補回去,至於要不要補聲幹,就看各人的修養囉~~

[2011-07-21更新] 剛才測試,在我的VS2010 10.0.40219.1 SP1Rel版本,配合devart EF,修改edml儲存似乎並未覆寫手動加入的StoreGeneratedPattern Attribute,看來不需要玩改了又改的遊戲。

歡迎推文分享:
Published 20 July 2011 07:29 PM 由 Jeffrey
Filed under: ,
Views: 9,336



意見

# jain said on 20 July, 2011 09:45 AM

照理說,改之前還是會先補聲「x」

# KKBruce said on 20 July, 2011 11:21 PM

這個Bug有點久了,可能是,可以手動修改後可正常運作,所以就放著不管了。

不過,每次動到edmx就要重新進xml裡設定一次,是比較麻煩的事。

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<July 2011>
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication