参数''未绑定在指定的LINQ to Entities查询表达式中

时间:2017-05-05 15:08:40

标签: c# entity-framework linq lambda

我看到有许多类似标题的问题,但没有一个问题解决了我的问题。 我使用一长而复杂的代码生成这个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.
                    }


                }

0 个答案:

没有答案