1
不幸的是,如果核心不支持TPC模式,但我們需要這種行爲。從來就寫道:這就是所謂的iBASE的接口和每個實體實現了這個接口:Ef core fluent api設置接口的所有列類型
public interface IBase
{
Guid Id { get; set; }
[Column(TypeName = "datetime2")]
DateTime CreateDate { get; set; }
[Required]
[StringLength(255)]
string CreateUser { get; set; }
bool Deleted { get; set; }
}
我想擺脫註解的使用流利的API配置,而不是。但我有大約20個不同的實體和7基本價值觀和我不希望在作出同樣的配置一遍又一遍:
modelBuilder.Entity<SomeEntity>()
.Property(e => e.CreateDate)
.HasColumnType("datetime2(2)")
.IsRequired();
任何想法如何實現IBASE所有實體配置各基礎屬性一次?
首先:感謝您的努力!但是我的「TPC」 - 提示呢?基類不適合我,除非你能告訴我,我如何能夠在每個數據庫表中擁有所有的基值。 EF 6提供了3種不同的模式(TPH,TPC和TPT),ef核心只支持TPH。所以你的回答是正確的「內容」,但不是真正的答案我的問題(直到現在)... – Joshit
先試一下。它將爲每個具體類型創建單獨的表格。所以這是TPC。第二部分配置與模型繼承沒有任何關係,它是關於配置繼承,所以你可以使用接口或其他。 – Ph0en1x
對不起!我試過了,你說得對 - 它有效!但是我想至少有一點是正確的;;)你的第二個要求是不正確的 - 如果我嘗試使用EntityTypeBuilder的接口,我得到以下錯誤:爲參數'clrType提供的實體類型'EfTEst.IBase' '必須是參考類型。 – Joshit