多くのエントリを読みましたが、(特別な?)問題の解決策が見つかりませんでした。どうぞ。
数値である検索文字列と、タイプ(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のソリューションがあれば便利です。