2009-08-20 128 views
4

有人可以帮我翻译这个查询到LINQ吗?我找不到翻译它的好方法,谢谢!左外加入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

URM,您可以简化一点 - 就好像从每个表中的一个字段? – Benjol 2009-08-20 13:31:04

+0

而且请稍微格式化一下。现在我觉得自己喜欢把叉子给我看。 j/k – 2009-08-20 13:35:07

+0

更好吗? – David 2009-08-20 13:38:36

回答

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 
    ... 
+0

这是完美的!我需要学习更多这些东西。它现在对我来说很陌生,谢谢! – RyanOC 2009-08-20 14:11:18