我有以下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转换为字符串,我认为它不会正常工作。
答案 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()))
我想这会使用某种变量而不是像示例那样的固定值。