私は次のようにテーブルを設定しています:
prefix | value
ABC 1234
ABC 5678
DEF 1234
where句で比較するために接頭辞と値が連結されているlinqクエリを作成することは可能ですか? 私はこれを試しましたが、常に空のセットを返します:
selected =
from i in dc.items
where i.prefix + i.value == "ABC1234"
select i;
編集:次のT-SQLは正しい結果をもたらします:
WHERE LTRIM(RTRIM([prefix])) + LTRIM(RTRIM([value])) = 'ABC1234'
Edit2:以下の回答のほとんどを組み合わせた以下は、まだ機能しません:
where (String.Concat(i.prefix.Trim(), i.value.Trim())) == "ABC1234"
Edit3:だから私はそれを機能させましたが、理由はわかりません。私は答えを受け入れましたが、誰かがそれが機能する理由を投稿したら、私は感謝します:)
これは機能します(n行を返します):
var temp = dc.items.Where(i => i.prefix.Trim() + i.prefix.Trim() == "ABC1234");
これは機能しません (0 行を返します):
var temp =
from i in dc.items
where i.prefix.Trim() + i.value.Trim() == "ABC1234"
select i;