加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

entity-framework – 实体框架OrderBy“CASE WHEN”

发布时间:2020-12-12 06:28:38 所属栏目:MsSql教程 来源:网络整理
导读:我想知道是否有人知道如何在Entity Framework中表达它在纯SQL中的含义: SELECT Name,IsEmployee,IsQualityNetworkFROM PersonORDER BY CASE WHEN IsQualityNetwork = 1 or IsEmployee = 1 THEN 0 ELSE 1 END,Name 我尝试使用Linq Dynamic但是当执行此代码时
我想知道是否有人知道如何在Entity Framework中表达它在纯SQL中的含义:
SELECT Name,IsEmployee,IsQualityNetwork
FROM Person
ORDER BY CASE WHEN IsQualityNetwork = 1 or IsEmployee = 1 THEN 0 ELSE 1 END,Name

我尝试使用Linq Dynamic但是当执行此代码时:

var p = ctx.People
    .OrderBy("CASE WHEN IsQualityNetwork = 1 or IsEmployee = 1 THEN 0 ELSE 1 END")
    .OrderBy(e => e.Name);

我得到了例外:
{“类型’人’中没有属性或字段’CASE’”}

解决方法

var p = ctx.People.OrderBy(p => (p.IsQualityNetwork == 1 || p.IsEmployee == 1) ? 0 : 1)
                  .ThenBy(p => p.Name);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读