Я пытаюсь создать следующее динамически, однако у меня возникают проблемы с вызовом метода расширения 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' не совместим с аргументами и аргументами предоставленного типа . Аргументы типа не должны предоставляться, если метод не является универсальным.
Любая помощь будет принята с благодарностью.