2

我有以下 SQL 片段,我无法弄清楚如何翻译成 LINQ

(p.prioid LIKE '1%' OR p.prioid LIKE '2%' OR p.prioid LIKE '3%')

我试过这个:

(p.prioid.Contains(1) || p.prioid.Contains(2) || p.prioid.Contains(3))

但收到以下错误消息:“无法从 int 转换为字符串”

我检查了表格,并且 1、2 和 3 是 int 数据类型,所以我认为如果通过添加引号将 int 转换为字符串,它将无法正常工作。

4

2 回答 2

2

尝试这个:

(p.prioid.ToString().StartsWith("1") || p.prioid.ToString().StartsWith("2") || p.prioid.ToString().StartWith("3"))

快-n-脏:)

于 2012-05-31T14:37:57.157 回答
2

LIKE 只能使用提供的字符串数据,即使您正在搜索其他数据类型。

如果您注意到,即使在 SQL 中,您也将它们作为字符串提交。

p.prioid LIKE '1%' OR p.prioid LIKE '2%' OR p.prioid LIKE '3%'

快速修复将使用.ToString()并提交您的查询。

(p.prioid.Contains(1.ToString()) || p.prioid.Contains(2.ToString()) || p.prioid.Contains(3.ToString()))

我想这将使用某种变量而不是像示例这样的固定值。

于 2012-05-31T14:39:32.580 回答