我有三个表。其中两人加入,但需要加入左边。我找到了很多代码在linq中执行此操作,但仅在两个表之间执行此操作。连接三个表并使用左外连接
这是我试图在LINQ中重新编码的SQL代码。
SELECT PRSN.NAME
,CO.NAME
,PROD.NAME
FROM PERSON PRSN
INNER JOIN COMPANY CO ON PRSN.PERSON_ID = CO.PERSON_ID
LEFT OUTER JOIN PRODUCT PROD ON PROD.PERSON_ID = PROD.PERSON_ID;
这是LINQ代码片段,我用它作为基础。我只是无法通过LINQ和左外连接将第三个表(我的示例SQL中的产品)拼凑在一起。样本位于两张桌子之间。感谢您的任何提示。
var leftOuterJoinQuery =
from category in categories
join prod in products on category.ID equals prod.CategoryID into prodGroup
from item in prodGroup.DefaultIfEmpty(new Product{Name = String.Empty, CategoryID = 0})
select new { CatName = category.Name, ProdName = item.Name };
迈克尔
...非常感谢你!这对我有用。 – MdeVera 2011-05-27 14:55:22
不用担心,交配。我最近遇到了同样的问题......花了一段时间才弄明白。很高兴分享:) – Beno 2011-05-28 10:39:21
@Beno如果你想在每个表上使用左外连接而不是内连接和外连接,你会怎么做? – mko 2012-11-12 21:29:32