您可以在LINQ to Entities查询中将CASE语句与OrderBy一起使用吗? [英] Can you use a CASE statement with OrderBy in an LINQ to Entities query?

查看:204
本文介绍了您可以在LINQ to Entities查询中将CASE语句与OrderBy一起使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有人可以将下面的SQL转换为LINQ to Entities查询

I'm wonder if someone can transform the SQL below to a LINQ to Entities query

SELECT Name, IsEmployee, IsQualityNetwork
FROM Person
ORDER BY CASE WHEN IsQualityNetwork = 1 or IsEmployee = 1 THEN 0 ELSE 1 END, Name

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

I tried using Linq Dynamic but when this code is executed:

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

我得到一个例外:
{类型中不存在属性或字段'CASE' 'Person'}

I get the exception: {"No property or field 'CASE' exists in type 'Person'"}

推荐答案

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

这篇关于您可以在LINQ to Entities查询中将CASE语句与OrderBy一起使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆