在为OrmLite生成查询时,我遇到了与OrderBy方法相关的一些问题。以下两个陈述有效:
.OrderBy(ob => new { at = ob.SortBy, ob.Id });
.OrderBy(ob => new { at = Sql.Desc(ob.SortBy), ob.Id });
但是下面的语句给了我一个编译错误(无效的匿名类型成员声明符。必须使用成员赋值,简单名称或成员访问声明匿名类型成员):
.OrderBy(ob => new { at = Sql.Desc(ob.SortBy), Sql.Desc(ob.Id) });
以下语句给出了一个sql错误(关键字'ASC'附近的语法不正确):
.OrderBy(ob => new { at = Sql.Desc(ob.SortBy) });
当深入挖掘时,我发现OrderByExpression给了我:
ORDER BY“SortBy”DESC ASC
答案 0 :(得分:1)
所以......现在我已经和OrmLite合作了几天的半明显的解决方案/解决方法就是连接语句并使用OrderByDescending ......例如
.OrderByDescending(ob => ob.SortBy).OrderByDescending(ob => ob.Id)
或
.OrderByDescending(ob => ob.SortBy)