ef 中linq语法 出现string和int类型比较问题,获取年龄区间数据问题

实体Resume的Age属性为String型

参数age为Int型,值为”18”

需要找出People表中所有Age大于18的实体集合

 query = query.Where(m => m.Age >= age);

m.Age  (string)转换(int)

用了各种方法,无法解决。因为ef中总是提示不能使用,编译不会报错,运行使用才会。

最终想到另类解决办法:弯道超车

  直接比较string类型大小 因为参数进来也是字符串

所以直接使用字符串比较大小,暂时没有发现问题,本解决方案,只针对当前特例情况

方案如下:

  beginAge为(string)类型

   query = query.Where(m => m.Age.CompareTo(beginAge)>=0);

比较规则如下,如需要自行处理

str1.CompareTo(str2);
相等返回0,str1<str2返回负数,str1>str2返回正数

原文地址:https://www.cnblogs.com/njccqx/p/12895320.html