0

我試圖通過選擇一個表來更新我的edmx文件。該工具吐出一條信息消息,表示該表沒有主鍵。實體框架 - 未添加到設計圖面的實體

實體沒有被添加到設計表面,但它確實被添加到.edmx文件中。另外,使用模型瀏覽器,我會看到一個Entities.Store和一個實體。我的表被添加到Entities.Store,但不是實體。

我無法訪問代碼中「已添加」的表。

我該怎麼辦?

重現步驟:

  1. 用,它們都定義爲外鍵與其他表的兩列創建SQL表。確保FK指向的表格已經存在於設計表面的模型中。
  2. 右鍵單擊並選擇Update Model from Database...
  3. 下一步。在添加選項卡下,在表格下標記新表格
  4. 單擊完成。

將創建一個關聯,它將在設計界面上被選中,但它不會以FK_開頭,它只是表的名稱。轉到模型瀏覽器並查看實體類型。桌子不會在那裏。查看關聯下,你會看到你的表名作爲一個關聯,但它會看起來不合適(因爲名稱)。

+0

啊!現在我明白了,它將這張表變成了一個「多對多」映射關聯(這就是現實) –

+0

@ScottChamberlain - 雖然棘手的部分,但你不能通過上下文來引用關聯,就好像它是多桌多桌。例如。 context.MyNewTable.Where(....)不起作用,您必須使用它創建的導航屬性(例如context.TableA.TableB)。 –

回答

1

實體框架對我來說太聰明瞭。它創建了一個關聯而不是一個實體。奇怪,但它適用於我需要如何使用它。