2

LINQに変換する方法がわからない次のSQLフラグメントがあります

(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からstringに変換できません」

テーブルを確認しましたが、1、2、3はintデータ型であるため、引用符を付けてintを文字列に変換した場合は正しく機能しないと思います。

4

2 に答える 2

2

これを試して:

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

Quick-n-dirty :)

于 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 に答える