Существует подробное описание того, как создать динамический запрос для LINQ:
Этот запрос: _dbEntities.Customers.Where (cust => cust.CustomerId == 10) .FirstOrDefault ();
выглядит динамически:
ParameterExpression pe = Expression.Parameter(Customer, "cust");
var _prpToUse = Expression.Property(pe, "CustomerId");
var _cnstToUse = Expression.Constant(10);
var qry = Expression.Equal(_prpToUse, _cnstToUse);
MethodCallExpression whereExpression = Expression.Call(
typeof(Queryable),
"Where",
new Type[] { lst.ElementType },
lst.Expression,
Expression.Lambda<Func<Customer, bool>>(qry, new
ParameterExpression[] { pe }));
lstData.Provider.CreateQuery<Customer>(whereExpression).FirstOrDefault();
Выезд: https://www.c -sharpcorner.com / UploadFile / b1df45 / dynamic-query-using-linq /
Надеюсь, это поможет вам.