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