mvc中ef的lamda表达式如何解析变量

hxymiller 2015-02-15 08:39:43
kw是一个string类型的变量,如果在使用ef的where方法中,直接写带变量的lamda表达式,是可以解析变量的,是可以查询到结果的
如下:var list= db.FJ_UserInfo.Where(u => u.UserRealName.Contains(kw)).OrderBy(u => u.UserID).Tolist();
但是如果把where中的lamda表达式u => u.UserRealName.Contains(kw)提取出来,用
System.Linq.Expressions.Expression<Func<FJ_UserInfo, bool>> wherelamda=u => u.UserRealName.Contains(kw);
就无法解析kw变量了,变成如下:
...全文
322 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2015-02-16
  • 打赏
  • 举报
回复
static Expression<Func<T, bool>> build<T>(string name) { var param = Expression.Parameter(typeof(T), "s"); var left = Expression.Property(param, "name"); var right = Expression.Constant(name); var equal = Expression.Equal(left, right); var lambda = Expression.Lambda<Func<T, bool>>(equal, param); return lambda; }
蝶恋花雨 2015-02-15
  • 打赏
  • 举报
回复
你直接定义成 var kw=string.Empty;这样试试。
  • 打赏
  • 举报
回复
不用Contains,改用IndexOf呢? EF也不应该有这问题啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧