SQL语句的等效LINQ语句

时间:2016-02-03 07:50:28

标签: c# linq c#-4.0 linq-to-sql

我有一个包含五列的表格。前四列中只有一列会有一个值,而其他一次只能为null,我需要从表行中获取非空值并检查第五列。根据我的要求,在sql语句下工作正常。但我需要使用LINQ做同样的事情。请建议如何使用LINQ实现相同目的?或等效的LINQ语句?

 SELECT 
   CASE 
      WHEN col1 is not null THEN col1 
      WHEN col2 is not null  THEN col2 
      WHEN col3 is not null  THEN col3 
      WHEN col4 is not null  THEN col4 
   END 
 FROM MyTable where col5 ='abc'

1 个答案:

答案 0 :(得分:3)

首先是第一件事。你的sql不正确。它必须是SELECT COALESCE(col1,col2,col3,col4) AS COL FROM MyTable where col5 ='abc'

var myObj = db.MyTable.Where(s => s.Col5 == 'abc').Select(s=> new {COL = s.col1??s.col2??s.col3??s.col4??"" })