假设我有
table Person
table Employee, which inherits Person.
我想获得一个Person列表,无论此Person是否为Employee。如何在没有加入Employee表的情况下获得的实体框架? C#是我正在使用的。感谢。
答案 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();