У меня есть C# WebForms приложение, которое использует Linq2SQL, SQL Server, .net 4.5Преобразовать этот SQL запрос в Linq
Я знаю, что SQL достаточно хорошо, но я найти Linq очень тяжелая работа.
SQL хотя сложно, как правило, имеет смысл, но я считаю, что linq практически невозможно писать, если я не могу найти идентичный пример в Интернете. На этот раз я не могу найти его.
Я использую представление в SQL для упрощения процесса и вырезания необходимости в сумасшедшем синтаксисе linq, соединяющем таблицы вместе, однако, поскольку представления не позволят ORDER BY
операторов, я немного застрял. Я могу заставить запрос работать отлично в хранимой процедуре, но я отказался от попытки вернуть данные через linq после 5-часового чистки «Сети», чтобы узнать, как это сделать.
оригинальный ORDER BY
сортирует Name
колонку, но игнорирует "The" в начале поля дает:
Apple
The Banana
Orange
Pear
Вот является SQL-запрос:
SELECT TOP 100 Name, Year, Data1, Data2
FROM v_List_Items
ORDER BY
CASE WHEN LOWER(SUBSTRING(Name, 1, 4)) = 'the '
THEN SUBSTRING(Name, 5, len(Name))
ELSE NAME
END ASC
Любые идеи?
Также возможно динамическое изменение фильтра результатов 100.
Благодаря
Вы пытались написать ту же логику в lambda 'OrderBy'? –
@krystanhonour Нет, вопрос в том, как сортировать, исключая префикс ''. – DavidG
Кажется, однако исходный вопрос был плохо сформулирован, я отредактировал, чтобы сделать более четким. –