包含不工作的 Lambda 表达式

我是 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”开头的行的问题。


明月笑刀无情
浏览 120回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP