Я новичок в Lambda Expressions и у меня возникли проблемы с получением нужного мне результата.Точнее говоря, у меня возникают проблемы с получением правильной части лямбда-выражения, содержащей LINQ.
Вот что у меня есть:
// The following line is what I want for my Final Result
var distinctValues = db.Equipment.Where(m => m.Model != null && m.Model.Contains(SearchTerm)).Select(m => m.Model).Distinct().ToList();
var queryableData = db.Equipment.AsQueryable();
var parameterExpression = Expression.Parameter(typeof(Equipment), Column);
var constant = Expression.Constant(null);
var property = Expression.Property(parameterExpression, Column);
var expression1 = Expression.NotEqual(property, constant);
var expression2 = Expression.Equal(property,constant);
Expression callContains = Expression.Call(typeof(Queryable), "Contains", new[] { <string> } );
var lambda1 = Expression.Lambda<Func<Equipment, bool>>(expression1, parameterExpression);
var lambda2 = Expression.Lambda<Func<Equipment, string>>(property, parameterExpression);
var lambda3 = Expression.Lambda<Func<Equipment, bool>>(callContains, parameterExpression);
var compiledLambda1 = lambda1.Compile();
var compiledLambda2 = lambda2.Compile();
Я передаю любое свойство ипоисковый запрос, и я хочу сгенерировать эквивалент запроса LINQ, приведенного выше, в качестве лямбда-выражения, которое начинается с «var diverValues».У меня возникли проблемы со строкой, которая начинается с "Выражение callContains".
Любая помощь очень ценится.
Спасибо,
Пит