实体框架TPT继承子类型

时间:2015-07-09 09:33:28

标签: c# entity-framework

如何确定具有TPT-Inhertiance的实体的子类型?

如果我有一个基类Person和两个子类Manager和Customer,应该可以查询所有人,然后通过使用GetType-Method按子类分组,但返回的类型始终是person。 E.g:

var persons = ctx.Persons.ToList();

var managers = persons.Where(x => x.GetType() == typeof(Manager)).ToList();

1 个答案:

答案 0 :(得分:2)

选择

var managers = ctx.Persons.OfType<Manager>().ToList();
如果你不知道你有什么,

也很有用

var persons = ctx.Persons.ToList();
Type modelType = persons.First().GetType();
if (modelType.BaseType == typeof(Manager))
{
    ((Manager)persons.First()).GiveNeilAPayRise = true;
}