У меня есть таблица настроить как так:Linq-на-SQL Соединить две колонки, где положение
prefix | value
ABC 1234
ABC 5678
DEF 1234
Можно ли создать Linq запрос, где префикс и значение сцепляются для сравнения в выражении WHERE ? Я попытался это, но она всегда возвращает пустой набор:
selected =
from i in dc.items
where i.prefix + i.value == "ABC1234"
select i;
Edit: следующие T-SQL приходит с правильными результатами:
WHERE LTRIM(RTRIM([prefix])) + LTRIM(RTRIM([value])) = 'ABC1234'
edit2: Следующая, которая объединяет наиболее ответы на приведенные ниже, до сих пор не работает:
where (String.Concat(i.prefix.Trim(), i.value.Trim())) == "ABC1234"
EDIT3: Так что я получил это работает, но я понятия не имею, почему. Я принял ответ, но если кто-то сообщение, почему это работает, я буду благодарен :)
Это работает (возвращает п строки):
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;
Я думаю, что это должно работать. Существуют ли пробелы в значениях (так что конкатенация действительно == "ABC 1234")? – hatchet
Каковы типы данных префикса и значения, являются ли «varchar (n)» или «char (n)»? Если они 'char (n)', они будут содержать пробельные поля. –
Doh они char (n). Я добавил .Trim() для обоих, но это не помогло. – carpat