在Entity Framework中选择基类

时间:2010-04-13 15:40:59

标签: entity-framework

假设我有

table Person
table Employee, which inherits Person.

我想获得一个Person列表,无论此Person是否为Employee。如何在没有加入Employee表的情况下获得的实体框架? C#是我正在使用的。感谢。

1 个答案:

答案 0 :(得分:0)

您需要确保不隐式使用Employee中的任何信息。

如果你这样做:

var people = Context.People.ToList();

...然后我实体框架将为那些碰巧是员工的人初始化类型Employee的新实例。这是因为当您在数据库中存储Employee时,通常希望在选择相同项目时返回Employee

就此而言,当存储的值为Person时,您是否可以告诉实体框架为您提供Employee。实体框架永远不会给你一个不正确的实体类型。

但是,如果您只想阅读一个表,则有一种方法可以做到:将Person中的数据选择为非实体类型,例如匿名类型:

var people = Context.People.Select(p => new { Name = p.Name }).ToList();