星期二, 6月 01, 2010

有關 EF 4.0 Many-to-Many 的關係設定

因為最近在設定 EF4 的關聯性的時候,發現有點難設
所以把步驟記下來,之後會比較記得,因為這真的很鳥~~~



1. 先連線到資料庫,把主要的兩個 table 以及關聯表都選擇起來
並且記得下面的 foreign key 的選項要勾起來~~~


2. 接下來就會出現這3個 entity 的圖,基本上因為有選擇 foreign key 的設定,所以 Role, User 與 RoleUserMapping 的表可以直接建立關係


3. 接下來,在 Role 與 User 間拉一條 Association,並調整成多對多


4. 接下來在那個 Many-to-Many 的關聯性上面按右鍵,選擇 Table Mapping 進入下面的畫面
在這個畫面把關聯的欄位對應好


5. 將上個視窗關閉,回到第3步的視窗,把 RoleUserMapping 的 Entity 刪掉,就會變成下面的樣子~~~


6. 請檢查 Model Browser, 要確定 RoleUserMapping 這個 table 還在~~~ (雖然 Entity 已經被刪掉了)


7. 最後一步,把 edmx 存檔,然後 build 專案,只要沒有問題,就表示通過了~~


注意事項:

  1. 關聯表不要有自己的 primary key, 把關聯欄位當作 primary key 就可以
  2. 關聯表有其他欄位沒關係
  3. 最好設定好 foreign key (還沒測試如果沒有 foreign key 的方式)
  4. 關聯表命名,如果是表中只有關聯欄位,以及 foreign key 都設定好了,其實直接就會變成 Many-to-Many 的關係,不需要這樣麻煩~~~
  5. 沒有測試過新增、修改關聯的動作~~~
這是為了解決
error 3034: Problem in Mapping Fragments starting at lines 6, 62: Two entities with different keys are mapped to the same row. Ensure these two mapping fragments do not map two groups of entities with overlapping keys to the same group of rows. 

感覺很鳥的問題~~~

沒有留言:

張貼留言

Powered By Blogger