使用EF 6我试图检索一组利用DBset.SqlQuery的实体,但实体是从单个表(TPH)中的单个抽象类继承的类的层次结构,我看到以下错误:结果:
InvalidOperationException:抽象类的实例不能 创建
这是一个简单的案例。实体具有唯一的id
密钥,尝试使用SqlQuery的原因是仅在一个查询中检索一组id
,而不是在循环中多次调用Find
:
myContext.myHierarchy.Find(eachId)
我试图使用:
List<myBaseClass> myResult = myContext.myHierarchy.SqlQuery("SELECT * FROM dbo.myHierarchy AS a INNER JOIN @theIDs AS i ON a.id = i.id",mySqlParameter).ToList();
SqlParameter是用户定义的表类型,只是一列int。
这种方法产生了上述错误。