通过ID查找继承的对象 - 实体框架

Han*_*urs 5 c# sql entity entity-framework

正如您在下图中看到的,我有一个基类"Person"的模型,两个实体"Kunde"和"Techniker"都继承了基类.

现在我遇到了以下问题.当我尝试使用Find方法获取具有给定ID的派生类Kunde的对象时,它告诉我这OfType<TResult>是一个方法,并且在此上下文中无效.

public Kunde GetById(int id)
{
   return dbModel.PersonMenge.OfType<Kunde>.Find(id);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试删除OfType但它显然告诉我对象Person不能隐式转换为Kunde.

这里有什么我想念的吗?

Ger*_*old 1

只是两个括号:

OfType<Kunde>()
Run Code Online (Sandbox Code Playgroud)

但之后你就不能再使用Find了,因为那是DbSet. 你必须使用Single, 或dbModel.PersonMenge.Find(id) as Kunde;.