Я пытаюсь создать следующее динамически, однако у меня возникают проблемы с вызовом метода расширения FirstOrDefault
:
using(var context = new Entities())
{
var list = context.Engines.Include("Cars").Select(e => e.Cars.FirstOrDefault()).ToList();
}
У меня есть следующее
Expression parameter = Expression.Parameter(typeof(Engine), "e");
Expression property = Expression.Property(parameter, "Cars");
- параметр =
{e}
- свойство =
{e.Cars}
Это хорошо, но я сталкиваюсь с проблемой, когда пытаюсь вызвать метод FirstOrDefault
:
var result = Expression.Call(typeof(Queryable), "FirstOrDefault", new type[] { typeof(Car)}, property);
Я бы хотел получить
- результат =
{e.Cars.FirstOrDefault()}
но я получаю InvalidOperationException
Нет общего метода 'FirstOrDefault' в
Тип 'System.Linq.Queryable' является
совместим с поставляемым типом
аргументы и аргументы. Нет типа
аргументы должны быть предоставлены, если
Метод не является универсальным.
Любая помощь будет принята с благодарностью.