型別發現

預設情況下 Code First 包含在模型中

  1. 在上下文類中定義為 DbSet 屬性的型別。
  2. 實體型別中包含的引用型別,即使它們是在不同的程式集中定義的。
  3. 派生類,即使只將基類定義為 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; }
}

我們可以看到所有類都包含在模型中

StackOverflow 文件