【发布时间】:2013-04-04 02:01:05
【问题描述】:
我正在开发一个 EF5 Code First 应用程序,到目前为止一切进展顺利,但我遇到了困难,我希望有人能提出解决方案。
基本上,我有一个基类和一些派生类,我想知道如何处理它们的映射。这是一个非常简单的例子:
[Table("Person")]
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
}
[Table("EmployeePerson")]
public class EmployeePerson : Person
{
public int HoursWorked { get; set; }
}
[Table("CustomerPerson")]
public class CustomerPerson : Person
{
public int DollarsSpent { get; set; }
}
到目前为止,这是一个典型的 Table-per-Type 场景,除了基类是 not 抽象的障碍——可能有一个不是 @ 的 Person 987654323@ 或CustomerPerson。我在让 EF 接受这一点时遇到了一些麻烦,当我尝试按 ID 加载这样的实体时,EF 生成的丑陋查询不返回任何行。
以前有没有人实现过这样的东西? TPT 风格的映射是否总是要求基类是抽象的?我还没有找到任何相反的例子,但也没有真正的证实。我可以想到一些丑陋的解决方法,如果必须的话,我可能可以使用,但如果有的话,我更喜欢更优雅的解决方案。
(还有一个问题:我正在使用第三方数据库,因此无法对架构进行任何更改。)
谢谢!
【问题讨论】:
标签: .net entity-framework inheritance ef-code-first table-per-type