如何确定具有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();
答案 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;
}