型別發現
預設情況下 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; }
}
我們可以看到所有類都包含在模型中