1

多くのエントリを読みましたが、(特別な?)問題の解決策が見つかりませんでした。どうぞ。

数値である検索文字列と、タイプ(bigint、Null)のテーブル列があります。

私は試した:

1.1。

Dim suche = "2012"
Dim nummern = (From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr)).Trim.Contains(suche)
                          Select t.TicketNr Order By TicketNr Descending).ToList

ここでの問題は、「トリム」がなくても、二重変換で長い数値20120000000000が見つからなかったため、結果が完全ではないことです。LINQ to Entityには解決策がないように思われるので、LIKEを使用してE-SQLを試しました。

2.2。

Dim suche = "%2012%"
Dim nummern = entity.Table.Where("it.longnumber LIKE @suche", New ObjectParameter("suche", suche))

同様のキャストエラーが発生します。テーブル「longnumber」が文字列の場合、上記の解決策は正常に機能します。

:)。

解決策は時々とても簡単です!:

(From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr), 15, 0).Contains(suche)
                           Select t.TicketNr Order By TicketNr Descending).ToList

StringConvert Overloadを使用する必要があります;)。

ただし、誰かがこのスレッドに参加してその方法を知っている場合は、(2)のようなe-SQLのソリューションがあれば便利です。

4

1 に答える 1

2

解決策は時々とても簡単です!!!:

(From t In entity.Table Where SqlFunctions.StringConvert(CDbl(t.TicketNr), 15, 0).Contains(suche)
                           Select t.TicketNr Order By TicketNr Descending).ToList

StringConvert Overloadを使用する必要があります;)。

ただし、誰かがこのスレッドに参加してその方法を知っている場合は、(2)のようなe-sqlのソリューションがあれば便利です。

于 2012-05-31T06:16:32.117 に答える