使用EF Core Migrations時,工具不會拾取所有屬性,只包含「Id」和某些(不是全部)FK(導航屬性)。它似乎也很好地理解了「Table Per Hierarchy」 - 因爲它在我希望的地方設置了一個鑑別器,但遷移文件本身並不反映我在Model命名空間中的屬性(請參閱github代碼)。EF Core Migrations不會獲取所有屬性
我的DbContext都坐落在這裏:https://github.com/aredfox/TheConference/blob/master/InfoBooth/TheConference.InfoBooth.Data/InfoBoothContext.cs 我的模型類在這裏:https://github.com/aredfox/TheConference/tree/master/InfoBooth/TheConference.InfoBooth.Core/Model
你可以看一下在[https://github.com/aredfox/TheConference/blob/master/InfoBooth/TheConference.InfoBooth.Data/Migrations/20170604125116_Initial.cs]生成的 「初始遷移」。在那裏您會看到它檢測到所有Id屬性(在基類[Entity][1]
中定義),但是我的Model classes的其他屬性I都沒有。
我使用了添加控制檯應用程序來運行遷移的方法(否則它將無法工作 - 請參閱關於EF Core入門的Julie Lerman's tips)。因此,在運行遷移時,我這樣做:dotnet ef --startup-project ../../TheConference.Infrastructure.ConsoleApp migrations add Initial
。
我一定要使用註釋或模型構建器或EFCore EntityTypeConfiguration的形式,讓EF知道我要採取什麼樣的?。
要添加更多,原始屬性和引用導航屬性需要setter。集合導航不需要setter。 (這是用戶在構造函數或默認值中編寫集合初始值設定項的常用模式)。 Id被匹配,因爲接口已經定義了setter和映射了集合導航。 – Smit
感謝隊友。只要找出它與cfg'ing他們與流利的API我得到的錯誤信息,他們只讀,然後我的便士下降...感謝您的答案,但!愚蠢的錯誤,我只是忽略了。 –
不客氣,隊友。它有時會發生在我們所有人身上:) –