繁体   English   中英

[EDMX]映射表拆分

[英][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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM