Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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

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
Sql 使用Linq和Lambda表达式的左连接返回左表_Sql_Linq_Lambda_Left Join - Fatal编程技术网

Sql 使用Linq和Lambda表达式的左连接返回左表

Sql 使用Linq和Lambda表达式的左连接返回左表,sql,linq,lambda,left-join,Sql,Linq,Lambda,Left Join,我尝试使用Lambda表达式从特定应用程序中获取文件夹中的每个案例。 我有两张桌子: 表1:个案 CaseId | FolderId | CaseContent 0 1 "blap" 1 2 "blop" 2 1 "blup" 3 3 "blip" 表2:文件夹 FolderId | ApplicationId 0 1 1 1 2

我尝试使用Lambda表达式从特定应用程序中获取文件夹中的每个案例。 我有两张桌子:

表1:个案

CaseId | FolderId | CaseContent
0        1          "blap"
1        2          "blop"
2        1          "blup"
3        3          "blip"
表2:文件夹

FolderId | ApplicationId
0          1
1          1
2          1
3          2
我想返回ApplicationId为1的文件夹中的每个案例

结果:

  CaseId | FolderId | CaseContent
  0        1          "blap"
  1        2          "blop"
  2        1          "blup"
我在这里找到了一个很好的连接表达式示例:

我不能使用它的原因是它从两个表返回内容

 var query = objEntities.Employee.Join(objEntities.Department, r => r.EmpId, p => p.EmpId, (r,p) => new{r.FirstName, r.LastName, p.DepartmentName});
所以不是

 (r,p) => new{r.FirstName, r.LastName, p.DepartmentName}
我希望它返回整个r,而不是p

我试着在这一行中做些什么

IQueryable<Case> cases = Cases.Join(Folders, f => f.Folder.folderId, c => c.folderId, (c) => c);
IQueryable cases=cases.Join(Folders,f=>f.Folder.folderId,c=>c.folderId,(c)=>c);
我想说它不起作用(


提前谢谢!!

有几种方法可以做到这一点

但是要使join表达式正确,您需要

IQueryable<Case> cases                                 //line:#1
= Cases.Join(Folders.Where(f => f.ApplicationId == 1), //line:#2
             c => c.folderId,                          //line:#3
             f => f.folderId,                          //line:#4
             (f,c) => c);                              //line:#5

我认为这更具可读性!

不用担心!如果这回答了您的问题,请将其标记为答案。
var query = from c in Cases
            join f in Folders on c.FolderId equals f.FolderId
            where f.ApplicationId == 1
            select c;