使用LINQ方法语法的左外连接
本文关键字:连接 语法 LINQ 方法 使用 | 更新日期: 2023-09-27 18:16:59
仍然不能在LINQ方法语法中正确地获得左外连接。我的结果仍然是INNER JOIN。我也尝试过使用DefaultIfEmpty(),我只得到结果,好像它是一个INNER JOIN。看了这个和其他网站上的很多例子。
这是我使用的LINQ。我知道这里是INNER JOIN。如何将其更改为LEFT OUTER?
ICD10s
.Join(ICD10CategoryPairs,
left => new { left.Code },
right => new { right.Code },
(left, right) => new { xx = left, yy = right })
.OrderBy(r => r.yy.Category)
.Select(t => new { Code = t.xx.Code, Description = t.xx.Description, Category = t.yy.Category })
有点离题,但我已经尝试了几次,以实现这样的结果,只使用linq语法,但我从来没有设法这样做。所以现在,当涉及到左连接时,我更喜欢下面的语法,它是有效的。
var dd = from document in sds.documents
join documentcategory in sds.documentcategories on document.documentcategoryid equals documentcategory.documentcategoryid
join documenttype in sds.documenttypes on document.documenttypeid equals documenttype.documenttypeid
join geodocument in sds.geodocuments on document.documentid equals geodocument.documentid into geod from geodocument in geod.DefaultIfEmpty()
join geocatalog in sds.geocatalogs on geodocument.geocatalogid equals geocatalog.geocatalogid into geoc from geocatalog in geoc.DefaultIfEmpty()
where (document.filename.Contains(txt))
select new DTO.Documents()
{
...
}