2014-03-05 33 views
1

我有一個EDMX文件,它具有從SQL Server數據庫映射的表和視圖。我試圖將名爲CourseCompany的視圖添加到EDMX文件中,該文件用作兩個其他視圖之間的多對多連接。在EF6中添加多對多視圖

通過看其他許多一對多使用關聯表爲例,這些都是我加的關聯非默認值的屬性:

  • 關聯設置名稱:      CourseCompany
  • END1多重性:      *(課程集合)
  • END1導航屬性:     公司
  • END2多重性:      *(公司的集合)
  • 結束2導航屬性:     課程
  • 名稱:      CourseCompany

但是這樣做會產生這樣的編譯錯誤:

錯誤3027:沒有爲以下內容指定的映射tySet/AssociationSet - CourseCompany

我確定了這個關聯是在EDMX中正確定義主鍵的視圖。在EDMX中添加此關聯需要做什麼?

+0

加入你最近有沒有「生成的數據庫從模型」的實體?一些映射似乎並沒有更新,直到你這樣做(非常討厭)。 – BradleyDotNET

+0

是的,我試過了。如果我將視圖添加到EDMX中,那麼它只會創建一個名爲CourseCompany1的新實體。 – Rono

+0

所以要清楚,你創建了兩個現有表之間的關聯,將它們的多重性設置爲*,然後重命名導航屬性。然後運行SQL生成工具(通過運行「從模型生成數據庫」並仍然看到上述錯誤? – BradleyDotNET

回答

1

按照下列步驟來解決此問題:

  1. 通過「更新模型從數據庫」工具添加許多一對多視圖。
  2. 編輯新添加的實體,以便兩個字段的實體鍵均設置爲true。
  3. 將關聯添加到EDMX,並按照我在上面的問題中提到的進行配置。
  4. 單擊關聯鏈接並轉到映射詳細信息選項卡。
  5. 在地圖下拉列表中選擇視圖名稱,並設置字段映射。
  6. 刪除在步驟1中
0

這種錯誤通常是由於在對設計進行更改後未運行「從模型生成數據庫」命令(可從EDMX設計器的上下文菜單中訪問)導致的。

運行該工具(如果它工作,它將更新SQL生成腳本)應導致問題消失。