EF Core Migrations不會獲取所有屬性

.net c# entity-framework entity-framework-core

使用EF Core Migrations時,工具不會獲取我的所有屬性,只有“Id”和一些(不是全部)FK(導航屬性)。它似乎也很好地理解了“每個層次表” - 因為它設置了一個我想要它的鑑別器,但是遷移文件本身並沒有反映我在Model命名空間中的屬性(參見github代碼)。

我的DbContext位於: https//github.com/aredfox/TheConference/blob/master/InfoBooth/TheConference.InfoBooth.Data/InfoBoothContext.cs我的模型類在這裡: https//github.com/aredfox/TheConference/樹/主/ InfoBooth / TheConference.InfoBooth.Core /型號

您可以在[ https://github.com/aredfox/TheConference/blob/master/InfoBooth/TheConference.InfoBooth.Data/Migrations/20170604125116_Initial.cs ]查看生成的“初始遷移”。在那裡你會看到它檢測到所有Id屬性(在基類[Entity][1] ),但沒有檢測到我的Model類的其他屬性。

我使用添加控制台應用程序來運行遷移的方法(否則它將無法工作 - 請參閱Julie Lerman關於EF Core入門的提示 )。因此,在運行遷移時,我這樣做: dotnet ef --startup-project ../../TheConference.Infrastructure.ConsoleApp migrations add Initial

我是否必須在EFCore中使用註釋modelBuilderEntityTypeConfiguration形式讓EF知道我想要採取什麼?

一般承認的答案

你所有的類屬性都是這樣的

public string Title { get; }

即只讀自動屬性。

EF Core不支持(映射)此類屬性。為了映射它們,您需要提供屬性設置器

public string Title { get; set; }

訪問級別並不重要 - privateprotectedinternal將起作用。唯一的要求是有一個二傳手。

EF Core還允許映射屬性和使用支持字段,但所有這些都需要流暢的API配置,並且很可能不能使用僅獲取自動屬性,因為它們支持readonly字段。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow