我有一些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;
任何帮助我如何通过案例陈述订购?
不要构造匿名类型,只需直接对您的对象执行条件.
orderby (u.Name == null ? 1 : u.Name.Length < 3 ? 2 : u.Name.Length < 10 ? 3 : u.Name.Length < 5555 ? 4 : 5)