使用LINQ进行左外连接

4

有人可以帮我将这个查询转换成LINQ吗?我找不到一个好的方法来翻译它,谢谢!

SELECT
  C.id,
  C.id_old,
  C.cus_id,
  C.namefirst,
  C.title,

  CP.id as 'cus_phone_jct.id',
  CP.contact_id,
  CP.phone_id,
  CP.ext,

  P.id as 'cus_phone.id',
  P.phone,
  P.typ_id,
  P.status_id,
  P.donotcontact

FROM cus_contact C
LEFT OUTER JOIN cus_phone_jct CP ON C.id = CP.contact_id  
LEFT OUTER JOIN cus_phone P ON CP.phone_id = P.id
WHERE C.cus_id = 4

2
嗯,你能简化一下吗 - 比如每个表格中的一个字段? - Benjol
请翻译以下与编程有关的内容,仅返回翻译后的文本:并请稍微排版一下。现在我感觉想用叉子戳自己的眼睛。开个玩笑。 - Paul Sasik
2
抱歉,以下是翻译的文本,由于复制粘贴不佳,请谅解:/ - RyanOC
1个回答

6

请尝试,

from c in DataContext.cus_contact
join cp in DataContext.cus_phone_jct on c.id equals cp.contact_id into cp2 
  from cp3 in cp2.DefaultIfEmpty()
join p in DataContext.cus_phone on cp3.phone_id equals p.id into p2 
  from p3 in p2.DefaultIfEmpty()
where c.cus_id = 4
select 
  c.id,
  cp3.id
  ...

太棒了!我需要学习更多这方面的知识。它现在对我来说看起来很陌生,谢谢! - RyanOC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接