我使用實體框架5,和我寫的代碼,第一個模型,我希望在現有的數據庫模式的頂部使用。所以,我無法控制模式設計。如何創建可選外鍵到另一個表,使用自定義的列名,用流利的API?
我有兩個表,matters
和users
。 users
表包含用戶帳戶 - 系統的實際用戶。 matters
表包含類似於計劃約會的數據,或者具有這種性質的數據。
matters
表的外鍵名爲users
,名爲manager
。此列只是說:「哎,這users
行指定此matter
的manager
」。這是一個可選的關鍵 - 一個事情不必有一個經理。
在users
記錄並不需要映射回這些事項性質的模型。
我在映射當前的嘗試是這樣的:
modelBuilder.Entity<Matter>().HasOptional(m => m.ProjectManager).WithRequired().Map(m => m.MapKey("project_manager"));
就這樣,我想說,Matter
有一個可選的FK,對模型的ProjectManager
屬性,用戶需要存在,而列名,在matters
表稱爲project_manager
。
雖然這不起作用,並且生成的SQL不正確,但我無法弄清楚如何獲得我正在尋找的東西。如果我要寫的SQL它看起來像這樣
SELECT matters.*, users.*
FROM matters
LEFT JOIN users ON matters.project_manager = users.id