EF DbSet.SqlQuery с наследованием TPH - PullRequest
0 голосов
/ 01 июня 2018

Используя 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.

Этот подход привел к ошибке, упомянутой выше.

...