将SQL LIKE转换为LINQ to SQL

时间:2012-05-31 14:36:16

标签: sql-server linq-to-sql

我有以下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转换为字符串,我认为它不会正常工作。

2 个答案:

答案 0 :(得分:2)

试试这个:

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

快速肮脏:)

答案 1 :(得分: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()))

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