【发布时间】:2015-10-11 03:41:41
【问题描述】:
我有一个这样的表达式:
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 '
如果我不进行解析并且值是 string[],我就不能在字符串上使用 >= 和 <= 运算符。
p.Value 是一个包含各种值的字符串,但在本例中为int
有没有一种方法可以查询数据库来执行这种介于语句之间的操作?
【问题讨论】:
-
您的
Value在您的数据库中应该是int,这不是一个危险信号吗? -
啊,必须喜欢“内部平台效应”...使用数据库表构建数据库表(列/行)...
-
Convert.ToInt32(p.Value)工作吗? -
请改用
Convert.ToInt32。 EF 明白这一点。 -
不行,我试过了
标签: c# .net linq entity-framework entity-framework-4