У меня есть какой-то SQL, который делает заказ в каждом конкретном случае. Работает нормально. Я не могу скопировать его как Linq2Sql.
Вот быстро взломанная версия SQL, которую я сделал, упростил и по-настоящему ошарашил. Пожалуйста, не обращайте внимания на то, что sql пытается сделать (с точки зрения бизнес-логики), когда я это придумал, для вопроса.
SELECT
u.Id,
u.Name
FROM Users u
ORDER BY CASE
WHEN u.Name IS NULL THEN 1
WHEN LEN(u.Name) < 3 THEN 2
WHEN LEN(u.Name) < 10 THEN 3
WHEN LEN(u.Name) < 5555 THEN 4
ELSE 5
END ASC
Когда я пытаюсь это сделать в каком-нибудь Linq2Sql .. я получаю анонимную ошибку.
Вот код Linq2Sql: _
from u in db.User
orderby new {
UserNameType = (u.Name == null ? 1 :
u.Name.Length < 3 ? 2 :
u.Name.Length < 10 ? 3 :
u.Name.Length < 5555 ? 4 :
5)
}
select u;
Любая помощь, как я могу заказать с помощью заявления случая?