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返回正数

posted @ 2020-05-15 15:41  it写代码  阅读(880)  评论(0编辑  收藏  举报