0
我試圖獲得TPT工作的基本示例。大多數參考文獻都會討論TPT,以及它如何工作,但不涉及實際的流暢映射細節。這是我到目前爲止:使用EF的TPT流利語法級聯刪除子記錄
public abstract class Parent {
public Parent() { }
public int Id { get; set; }
// other properties...
}
public class Child : Parent {
public Child() : base() { }
// other properties...
}
public class MyContext : DbContext {
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
var p = modelBuilder.Entity<Parent>();
p.ToTable("Parent");
p.HasKey(m => m.Id);
p.Property(m => m.Id).HasColumnName("Id").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
var c = modelBuilder.Entity<Child>();
c.ToTable("Child");
//c.HasKey(m => m.Id); // needed?
//c.Property(m => m.Id).HasColumnName("Id").IsRequired(); // needed?
}
}
這是我需要做的嗎?有沒有這個具體案例的參考例子?
UPDATE:
感謝的評論,我發現,這是正確的,並且事情正在按照慣例映射。
但是我發現,雖然子記錄不會在父記錄被刪除時自動級聯刪除。我可以通過腳本改變它,但我想使用EF方法。我如何配置孩子這樣做?
這些鍵應該按照慣例映射,包括'IDENTITY' - 如果您已經顯示,它提供了'Id'。你在插入時出現什麼錯誤(你能看到一些代碼?) –
'ToTable'應該足夠了。詳細說明*我遇到問題*。 –
@Ic查看上面編輯 –