本来是觉得Expression树拼接条件太繁琐,就想着再给他简化一下,只需要加入条件,可以自动生成树;
然后出现了一个错误:“Ambiguous match found”;可惜吃了英语的亏,我把它复制到网易上翻译,结果是模糊匹配;
恰好我在封装模糊查询这块,然后想着,对啊,我就是在做模糊查询啊,这有什么问题?
然后一直搞不懂什么问题,最后在朋友的提示下才想起,他是不是说GetMethod这个方法有多个重载?我代码表述不大明确?然后看了下,果然是有多个重载,指定一个就可以了;
就是这样:
Expression result = Expression.Call(left, typeof(string).GetMethod("Contains", new[] { typeof(string) }), right);
吃一堑长一智;博客园做个记录;下次别再犯这种错误了;