我是 Lambda 表达式的新手,在获取我想要的输出时遇到了一些问题。更具体地说,我无法让 LINQ 包含正确的 Lambda 表达式的一部分。
这是我到目前为止所拥有的:
// 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 distinctValues”开头的 Lambda 表达式。我遇到了以“Expression callContains”开头的行的问题。
相关分类