我有一个这样的表:

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");

关于c# - Linq-to-SQL在where子句中连接两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10306437/

10-12 06:06