0

首先,我对数据库没有任何控制权,所以我不能在那里改变任何东西。

数据库中的字段是一个 varchar(50) 并且包含(对于我感兴趣的记录)一个数字。我想获得所有数字超过 50 的数字。在 SQL 中,我只需键入:

SELECT Field FROM MyTable WHERE Field > '50'

即使我同意数据类型应该是别的东西,它也能正常工作。

在 EF 我正在尝试:

query = query.Where(t => t.MyTable.Field > string);

错误是:运算符'>'不能应用于'string'和'string'类型的操作数

4

2 回答 2

-3

使用 int.Parse(str) C# 不是隐式类型的 - 因此您必须使用“>”运算符将其转换为整数、双精度等。如果您不确定字符串是否为数字,则可以使用 int.tryparse(str)

于 2013-10-29T15:36:52.630 回答
-3

最初,我建议使用以下代码,我尝试并使用但未使用 EF 实体集:

query = query.Where(t => int.TryParse(t.Mytable.Field, out number) && int.Parse(t.MyTable.Field) > int.Parse(string));

然后,在得到一些好的评论后,我在 EF 集上尝试了它,并且该行本身有效,但是在该行执行之后,我尝试对上面查询的结果进行任何操作(例如 Count()),我得到了以下例外:

LINQ to Entities does not recognize the method 'Boolean TryParse(System.String, Int32  ByRef)' method, and this method cannot be translated into a store expression.
于 2013-10-29T15:40:19.087 回答