使用Expression创办动态查询并自定义like方法时,提示“不识别该方法,因此无法转换为存储表达式”
使用Expression创建动态查询并自定义like方法时,提示“不识别该方法,因此无法转换为存储表达式”
我在wcf ria中创建了动态查询数据库的方法,并利用自定义的like方法实现模糊识别,但是在调用时却提示:
下面是wcf ria 中的代码:
请求大哥大姐们解答呀,thx!
------解决方案--------------------
这种代码自己搜下,很容易找到
http://www.cnblogs.com/JimmyZheng/archive/2012/02/23/2364154.html
我在wcf ria中创建了动态查询数据库的方法,并利用自定义的like方法实现模糊识别,但是在调用时却提示:
下面是wcf ria 中的代码:
[Query]
public IQueryable<ProMainenance> getProMainenancesBySearch(string queryField, string queryValue)
{
//s.[queryFiled]
ParameterExpression param = Expression.Parameter(typeof(ProMainenance), "s");
Expression selector = Expression.Property(param, typeof(ProMainenance).GetProperty(queryField));
Expression constant = Expression.Constant(queryValue);
Expression filter = Expression.Call(typeof(VehicleService).GetMethod("like", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public), selector, constant);
Expression<Func<ProMainenance, bool>> pred = Expression.Lambda<Func<ProMainenance, bool>>(filter, param);
return this.ObjectContext.ProMainenances.Where(pred);
}
static bool like(string a, string b)
{
return a.Contains(b);
}
请求大哥大姐们解答呀,thx!
Linq
动态查询
like
------解决方案--------------------
这种代码自己搜下,很容易找到
http://www.cnblogs.com/JimmyZheng/archive/2012/02/23/2364154.html