将sql代码转换为linq(内连接查询)

Posted

技术标签:

【中文标题】将sql代码转换为linq(内连接查询)【英文标题】:Convert sql code to linq (Inner join Query) 【发布时间】:2014-10-09 14:00:01 【问题描述】:

有人可以帮我把这个 sql 代码转换成 linq。

SQL 查询

select distinct  coursecode
from UnitSet_Unit  
where UnitCode  in ('FDFFSACA' ,'FDFFSCFSAA', 'FDFOPTHCP3A ')
and CourseCode in (Select  distinct  coursecode
                  from Trainee_course
                  where TraineeID =10000088 )

UnitCode 中的 IN clause 是动态的并且以数组的形式出现。 第二部分的课程代码也有变量计数

【问题讨论】:

【参考方案1】:

假设我们有以下输入(并且您正在使用 C#):

var unitCodes = new List<string>  "FDFFSACA" ,"FDFFSCFSAA", "FDFOPTHCP3A" ;
var traineeID = 10000088;

这应该可行:

var result = (from us in db.UnitSet_Unit
              where unitCodes.Contains(us.UnitCode)
              && us.CourseCode == (from tc in db.Trainee_course
                                   where tc.TraineeID == traineeID
                                   select tc.CourseCode).Distinct().SingleOrDefault()
              select us.CourseCode).Distinct();

【讨论】:

谢谢大卫G。这有助于我获得实际的 linq 查询。

以上是关于将sql代码转换为linq(内连接查询)的主要内容,如果未能解决你的问题,请参考以下文章

协助将 SQL 查询转换为 LINQ 查询

如何将带有内连接语句的 Sql 查询转换为带有 Where 语句的 sql 查询(语句中没有内连接)

将两个查询的左外连接转换为 LINQ

将 SQL 语句转换为 DataTable 上的 LINQ 查询

C# 将带有 Case 语句的 SQL 查询转换为 LINQ

将 sql 查询转换为 linq 查询