类型发现
默认情况下 Code First 包含在模型中
- 在上下文类中定义为 DbSet 属性的类型。
- 实体类型中包含的引用类型,即使它们是在不同的程序集中定义的。
- 派生类,即使只将基类定义为 DbSet 属性
这是一个例子,我们只在上下文类中添加了 Company
作为 DbSet<Company>
:
public class Company
{
public int Id { set; get; }
public string Name { set; get; }
public virtual ICollection<Department> Departments { set; get; }
}
public class Department
{
public int Id { set; get; }
public string Name { set; get; }
public virtual ICollection<Person> Staff { set; get; }
}
[Table("Staff")]
public class Person
{
public int Id { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
}
public class ProjectManager : Person
{
public string ProjectManagerProperty { set; get; }
}
public class Developer : Person
{
public string DeveloperProperty { set; get; }
}
public class Tester : Person
{
public string TesterProperty { set; get; }
}
public class ApplicationDbContext : DbContext
{
public DbSet<Company> Companies { set; get; }
}
我们可以看到所有类都包含在模型中