2015-11-08 117 views
1

我正在使用實體框架測試版8和代碼優先使用SQLite數據庫。實體框架中的表繼續層次結構7

我需要TPH繼承,但默認情況下它使用TPT繼承。

這裏是我的代碼的一部分:

public abstract partial class Amenity 
{ 
    [Key] 
    public int AmenityId { get; set; } 
    public string AmenityName { get; set; } 
} 

public class AmenityCountable : Amenity 
{ 
    public int AmenityMinValue { get; set; } 
    public int AmenityMaxValue { get; set; } 
    public string AmenityTypeName { get; set; } 
} 

public class AmenityOptionable : Amenity 
{ 
    public bool CanHaveMultipleValues { get; set; } 
} 

public class KMContext : DbContext 
{ 
    public virtual DbSet<Amenity> Amenities { get; set; } 
    public virtual DbSet<AmenityCountable> AmenityCountable { get; set; } 
    public virtual DbSet<AmenityOptionable> AmenityOptionable { get; set; } 
} 

如何修改它,以便它使用TPH繼承?

+0

得到了與EF7沒有經驗,但在EF6我們的TPH映射使用ToTable。嘗試用[Table(「Amenity」)]屬性標記AmenityCountable和AmenityOptionable類。 – 3615

+0

@ 3615我試過了,但是當使用Add-Migration時,我得到以下錯誤:「實體'AmenityCountable'的模式''中不能使用表'Amenity',因爲它正用於另一個實體。 –

回答