为了账号安全,请及时绑定邮箱和手机立即绑定

实体框架/ Linq EXpression从字符串转换为int

实体框架/ Linq EXpression从字符串转换为int

喵喵时光机 2019-12-05 16:04:28
我有一个这样的表达式:var values = Enumerable.Range(1,2);return message => message.Properties.Any(    p => p.Key == name     && int.Parse(p.Value) >= values[0]     && int.Parse(p.Value) <= values[1]);这样编译可以,但是当它命中数据库时会抛出异常 'LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression '如果我不进行分析并且将值设置为a string[],则不能在字符串上使用>=and <=运算符。p.Value 是一个包含各种值的字符串,但是在这种情况下,它是 int有没有一种方法可以查询数据库以执行这种之间的语句?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

我最近不得不在LINQ查询中将字符串(数字表示形式)转换为枚举值,而没有实现查询。我的枚举使用0到9之间的int值,所以我最终做了这样的事情:


    .Select(str => (MyEnum?)(SqlFunctions.Unicode(str) - 48))

我知道这不能为问题提供完整的解决方案,但是在像我这样的情况下它肯定可以工作。也许有些人会发现它有用。


查看完整回答
反对 回复 2019-12-05
  • 3 回答
  • 0 关注
  • 792 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信