Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Sql到Linq检查多个案例_C#_Linq - Fatal编程技术网

C#Sql到Linq检查多个案例

C#Sql到Linq检查多个案例,c#,linq,C#,Linq,如何在Linq中检查多个案例(分类为“高薪”、“低薪”、“中薪”) Sql select id,name,salary, case when salary <=1500 then 'under paid' when salary >=3500 then 'over paid' else 'medium pay' end as status from Person 使用三元运算符,我可以检查或CASE。否则,我必须使用if..else if.您

如何在Linq中检查多个案例(分类为“高薪”、“低薪”、“中薪”)

Sql

select id,name,salary,
  case  when salary <=1500 then 'under paid'
        when salary >=3500 then 'over paid'
        else 'medium pay' end as status 
from Person

使用三元运算符,我可以检查或CASE。否则,我必须使用if..else if.

您可以嵌套三元运算符语句,LINQ将其转换为CASE语句:


您可以从linq查询中调用方法。

我只需要编写一个方法,然后从选择区域中调用它

var q = context.Persons.Select(c => GetStatus(c.salary));

@你能比我快一点吗+1用于创建处理它的方法
Status = c.salary < 1000 ? "under paid" : 
         c.salary < 2000 ? "medium paid" :
         c.salary < 3000 ? "not bad paid" :
         "overpaid";
new { Status = GetPaymentStatus(c.salary) }
var q = context.Persons.Select(c => GetStatus(c.salary));