实体框架6每个层次结构表特定包括
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体框架6每个层次结构表特定包括相关的知识,希望对你有一定的参考价值。
当我执行每层次表映射时,我遇到了EF6的问题。我有一个Person
类,有Employee
和Manager
儿童。除了一个字段外,这两个类几乎相同:DepartmentId(以及后续的链接组件部门)。
class Person {
public string Name {get; set;}
}
class Employee : Person {}
class Manager : Person {
public int DepartmentId {get; set;}
public Department Department {get; set;}
}
我已经为这种东西设置了EF必要的设置:
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Person>()
.Map<Employee>(x => x.Requires("Discriminator").HasValue("emp"))
.Map<Manager>(x => x.Requires("Discriminator").HasValue("man"));
现在我的问题是,当我想要包括部门时,我无法弄清楚如何做到这一点。有谁能够帮我?还是用文章或其他东西指引我正确的方向?
答案
我假设你的dbContext只暴露了Person
DbSet。此外,您不会指示您是要尝试获取所有Person对象还是仅尝试管理器。如果是后者,您可以使用OfType<T>
方法强制转换为正确的类型。
dbContext.Person
.OfType<Manager>()
.Include(m => m.Department)
以上是关于实体框架6每个层次结构表特定包括的主要内容,如果未能解决你的问题,请参考以下文章