我在使用动态Linq时遇到了一些问题,希望有人能帮助我。 我面临的问题是需要按特定顺序对列表进行排序。 在SQL中,我会这样写:
ORDER BY CASE WHEN Blah = 'blah' THEN 1 ELSE 0 END
我该如何使用Dynamic Linq实现这个功能?
我尝试了如下的代码:
listToSort.AsQueryable().OrderBy("CASE WHEN Blah = 'blah' THEN 1 ELSE 0 END")
但是这会返回一个错误
类型中不存在属性或字段'CASE'
此代码在运行时生成为表达式列表。 因此,我正在使用动态Linq将表达式作为字符串使用。
listToSort.AsQueryable().OrderBy("CASE WHEN Blah = 'blah' THEN 1 ELSE 0 END, DateCreated DESC")
此外,order by是在运行时创建的,这就是为什么我使用动态linq的原因。 - Rian Mostert