0
我爲假日系統創建了一個相當簡單的Database
。2繼承的POCO創建一個表而不是兩個
實體
Employee
public class Employee
{
public int Id { get; set;}
public string Username { get; set; }
public LineManger Manager { get; set; }
}
LineManger
public class LineManager : Employee
{
public string CompanySection { get; set; }
}
關係
如您所見,每位員工都有一個LineManger
,但Employee
可能是LineManager
。
在我DbContext
我:
public DbSet<Employee> Employees { get; set; }
public DbSet<LineManager> Managers { get; set; }
public DbSet<HolidayConfiguration> Configurations { get; set; }
public DbSet<Holiday> Holidays { get; set; }
當我跑PM > Update-Database -verbose
首次它只創建Employee
表,此表有CompanySection
和Manager_Id
不映射到任何地方看到,因爲有ISN」 t一個LineManager
表。
爲什麼會發生這種情況的任何解釋?它是否正確?
您正在使用默認值。分配表名(屬性或流利表示法)。 –
您正在使用繼承。你發現的特徵不是問題。但是,可能存在的問題是您的POCO模型不支持將Employee更改爲LineManager或不成爲LineManager。 –
@TomBlodget所以在這種情況下,將標準化降低到一個級別並且在員工中擁有「IsLineManager」屬性和「CompanySection」屬性會更好嗎? – LukeHennerley