Я пытаюсь получить список всех объектов в базе данных указанного типа. Я делал это раньше, когда тип был известен во время компиляции, но теперь я пытаюсь передать тип в метод и заставить метод вернуть все записи указанного типа, и я не могу заставить его работать. Я пробовал следующее:
public IList<WritingObject> GetBasicObjectsByProject(int projectId, Type oType)
{
var results = from o in _objects.AsQueryable
where o.Project.Id == projectId
&& o.GetType() == oType
select o;
return results.ToList<WritingObject>();
}
Это не сработало, потому что Linq to Entities не поддерживает метод GetType (). Далее я попробовал
var results = from o in _objects.AsQueryable
where o.Project.Id == projectId
&& o is oType
select o;
Это не работает, потому что компилятор утверждает, что oType не относится к известному типу. Использование typeof(oType)
приводит к той же ошибке, что и выполнение OfType<oType>()
на IQueryable
.
У меня заканчиваются идеи сохранить эту динамику, не разбивая ее на один метод для подтипа. У кого-нибудь есть идеи?