[英][EDMX]Mapping table splitting
我正在使用POCO与Entity Framework 4.1合作。 我想映射表Employees:
EmployeeID
LastName
FirstName
ManagerID
IsManager
(使用Employee表中的ManagerID自反关联)
在
EmployeeBase抽象类包含
EmployeeID
LastName
FirstName
当IsManager为false时,Employee类(继承EmployeeBase)包含
ManagerID
当IsManager为true时,Manager类(继承EmployeeBase)
我的问题是,在上下文TT我只有DbSet<EmployeeBase>
。 如何生成DbSet<Employee>
和DbSet<Manager>
?
您不能为派生类型使用DbSet
。 它是继承映射的工作方式。 您始终只有基本类型的DbSet
,如果您只想为子类型运行查询,您将使用OfType
扩展方法。
在你的情况下:
var query1 = context.Employees; // returns all employes and managers
var query2 = context.Employees.OfType<Employee>(); // returns only employees
var query3 = context.Employees.OfType<Manager>(); // returns only managers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.