[英]Linq-to-SQL concatenate two columns in where clause
我有一個這樣的表:
prefix | value
ABC 1234
ABC 5678
DEF 1234
是否可以創建一個linq查詢,其中將前綴和值連接在一起,以便在where子句中進行比較? 我已經嘗試過了,但是它總是返回一個空集:
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;
我不會說英語。 嘗試這個:
var selected = dc.Where(x => x.prefix + x.value == "ABC1234");
假設value
不是字符串,則可以這樣將它們連接起來:
var selected = dc.Items.Where(x => string.Concat(x.prefix, x.value) == "ABC1234");
使用string.Concat
的好處是所有參數都將轉換為字符串。
where (i.prefix + i.value) == "ABC1234"
嘗試選擇這個
selected =
from c in db.items
select new {
Name = string.Format("{0}{1}", c.prefix , c.value)
};
看看你有“ ABC1234”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.