Sql 这个嵌套的左连接的linq等价物是什么?

Sql 这个嵌套的左连接的linq等价物是什么?,sql,linq,Sql,Linq,下面嵌套的左连接的linq等价物是什么 SELECT y.YazilimciId, y.AdSoyad, u.UygulamaId, y.KullaniciAdi, y.IsTel, y.CepTel, y.Eposta, k.KurumAdi FROM Yazilimcilar y, UygulamaYazilimci uy, Uygulamalar u left outer join ( Uygula

下面嵌套的左连接的linq等价物是什么

SELECT y.YazilimciId, y.AdSoyad, u.UygulamaId, y.KullaniciAdi, y.IsTel, y.CepTel, y.Eposta, k.KurumAdi
FROM Yazilimcilar y,
     UygulamaYazilimci uy,
     Uygulamalar u
        left outer join
            (
                UygulamaKurum uk
                    left outer join  Kurumlar k on uk.KurumId = k.KurumId
            ) on u.UygulamaId = uk.UygulamaId

WHERE y.YazilimciId = uy.YazilimciId
AND   uy.UygulamaId = u.UygulamaId
AND   u.UygulamaId = '19EA3A29-40FF-45FF-B289-03885FDC9BFC'

为什么需要嵌套联接?实际上,我以前从未见过这样的语法,我也不确定它是否能工作,不管怎样,在MS SQL Server上也不行。您可以将查询编写为

SELECT y.YazilimciId, y.AdSoyad, u.UygulamaId, y.KullaniciAdi, y.IsTel, y.CepTel, y.Eposta, k.KurumAdi
FROM Yazilimcilar y,
     UygulamaYazilimci uy,
     Uygulamalar u
    left outer join UygulamaKurum uk on u.UygulamaId = uk.UygulamaId
    left outer join Kurumlar k on uk.KurumId = k.KurumId
WHERE y.YazilimciId = uy.YazilimciId
AND   uy.UygulamaId = u.UygulamaId
AND   u.UygulamaId = '19EA3A29-40FF-45FF-B289-03885FDC9BFC'
我还可以建议用正确的连接语法重写所有连接

SELECT y.YazilimciId, y.AdSoyad, u.UygulamaId, y.KullaniciAdi, y.IsTel, y.CepTel, y.Eposta, k.KurumAdi
FROM Uygulamalar u
    inner join UygulamaYazilimci uy on uy.UygulamaId = u.UygulamaId
    inner join Yazilimcilar y on y.YazilimciId = uy.YazilimciId
    left outer join UygulamaKurum uk on u.UygulamaId = uk.UygulamaId
    left outer join Kurumlar k on uk.KurumId = k.KurumId
WHERE u.UygulamaId = '19EA3A29-40FF-45FF-B289-03885FDC9BFC'

现在,您可以轻松地编写LINQ:)

您是否正在寻找一个SQL to:-)我使用了Linqer,无法生成。嗯,很有趣;我的sql也可以在ms sql server中使用,但您的sql更好,更易于转换。我很感激。我已经测试过了,是的,嵌套语法很有效。但我想不出我为什么要使用这种语法——它更难阅读,而且我看不出它有什么好处。