我看到有许多类似标题的问题,但没有一个问题解决了我的问题。 我使用一长而复杂的代码生成这个lambda表达式,我不想在这里粘贴(如果需要我可以粘贴):
{Param_0 => (((Param_0.AD == "JASON") And (Param_1.AD == "JASON")) And (Param_2.STATE== "GEORGIA"))}
我正在使用这样的表达式:
var cust= db.CUST.Where(lambdaExpression);
var custList= cust.ToList();
说到ToList(),它会出现这个错误:
参数''未绑定在指定的LINQ to Entities查询中 表达
我的lambda表达式出了什么问题?当我尝试别的东西时,它会起作用,但它并不适用于这个。感谢。
编辑:
这是我的代码:
var property = typeof(CUSTOMER).GetProperty(newArray[0], BindingFlags.Instance | BindingFlags.Public);
var parameter = Expression.Parameter(typeof(CUSTOMER));
var memberExpression = Expression.Property(parameter, property);
var value = Convert.ChangeType(newArray[1], property.PropertyType, CultureInfo.InvariantCulture);
var eq = Expression.Equal(memberExpression, Expression.Constant(value));
if (/*some condition*/)
{
foreach (var elem in someotherlist)
{
var newelem= elem.Replace(" ", string.Empty);
string[] newArray = newelem.Split(':');
var listproperty = typeof(CUSTOMER).GetProperty(newArray[0], BindingFlags.Instance | BindingFlags.Public);
var listparameter = Expression.Parameter(typeof(CUSTOMER));
var listmemberExpression = Expression.Property(listparameter, listproperty);
var listvalue = Convert.ChangeType(newArray[1], property.PropertyType, CultureInfo.InvariantCulture);
var eqnew = Expression.Equal(listmemberExpression, Expression.Constant(listvalue));
eq = Expression.And(eq, eqnew); // I guess problem is here.
}
}