Linq-to-SQL 在 where 子句中连接两列

car*_*pat 1 c# linq asp.net linq-to-sql

我有一张桌子,如下所示:

prefix | value
 ABC     1234
 ABC     5678
 DEF     1234
Run Code Online (Sandbox Code Playgroud)

是否可以创建一个 linq 查询,其中前缀和值连接起来以便在 where 子句中进行比较?我已经尝试过这个,但它总是返回一个空集:

selected =
            from i in dc.items
            where i.prefix + i.value == "ABC1234"
            select i;
Run Code Online (Sandbox Code Playgroud)

编辑:以下 T-SQL 得出正确的结果:

 WHERE LTRIM(RTRIM([prefix])) + LTRIM(RTRIM([value])) = 'ABC1234'
Run Code Online (Sandbox Code Playgroud)

Edit2:以下内容结合了下面的大部分答案,仍然不起作用:

where (String.Concat(i.prefix.Trim(), i.value.Trim())) == "ABC1234"
Run Code Online (Sandbox Code Playgroud)

Edit3:所以我已经让它工作了,但我不知道为什么。我已经接受了答案,但如果有人发布为什么它有效,我将不胜感激:)

这有效(返回 n 行):

var temp = dc.items.Where(i => i.prefix.Trim() + i.prefix.Trim() == "ABC1234");
Run Code Online (Sandbox Code Playgroud)

这不起作用(返回 0 行):

var temp =
            from i in dc.items
            where i.prefix.Trim() + i.value.Trim() == "ABC1234"
            select i;
Run Code Online (Sandbox Code Playgroud)

bat*_*ssc 5

我不会说英语。尝试这个:

var selected = dc.Where(x => x.prefix + x.value == "ABC1234");
Run Code Online (Sandbox Code Playgroud)