【发布时间】:2010-05-11 22:24:40
【问题描述】:
我刚刚开始第一次使用 Entity Framework 4。到目前为止我很喜欢它,但我对如何正确地进行继承有点困惑。
我正在使用模型优先的方法,并且我的 Person 实体具有两个子类型实体,Employee 和 Client。 EF 正确地使用了按类型表的方法,但是我似乎无法弄清楚如何确定特定对象的 Person 类型。
例如,如果我做类似的事情
var people = from p in entities.Person select p;
return people.ToList<Person>();
在我由此形成的列表中,我只关心 Id 字段,因此我不想实际查询所有子类型表(这是一个带有链接的网页列表,所以我只需要名称和Id,都在 Persons 表中)。
但是,我想使用这个查询形成不同的列表,每个类型的人一个(因此一个列表用于客户,另一个用于员工)。
问题是,如果我有一个 Person 实体,如果不直接查询 Client 或 Employee 表,我看不到任何方法来确定该实体是 Client 还是 Employee。如何在不执行大量额外数据库查询的情况下轻松确定实体的子类型?
【问题讨论】:
标签: entity-framework inheritance entity-framework-4