使用Entity Framework加入三个表

时间:2016-02-11 19:16:51

标签: asp.net-mvc entity-framework linq

我有这三张桌子。我编写了自己的SQL代码,但我无法将其转换为List<>。你能帮帮我吗?

SQL输出:

enter image description here

这是我的SQL代码:

Select 
    H.HastaAdSoyad, R.RandevuTarihi, R.RandevuSaati 
From 
    Hasta H 
Inner Join 
    Randevu R On H.HastaId = R.HastaId 
Inner Join 
    Doktor D On R.DoktorId = D.DoktorId

这些是我的表格:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的模型中有导航属性。这意味着您不必担心加入 - 它们将为您生成。

等效的LINQ查询很简单:

var query = from hasta in db.Hasta
            select new
            { 
               hasta.HastaAdSoyad,
               hasta.Randevu.RandevuTarihi,
               hasta.Randevu.RandevuSaati
             };
var result = query.ToList();

不清楚为什么原始SQL查询包含加入Doktor表的原因。

如果你真的想要加入(由于某些未知原因),那么查询就是

var query = from hasta in db.Hasta
            join randevu in db.Randevu on hasta.RandevuId equals randevu.RandevuId
            join doktor in db.Doktor on randevu.DoktorId equals doktor.DoktorId
            select new
            { 
               hasta.HastaAdSoyad,
               randevu.RandevuTarihi,
               randevu.RandevuSaati
             };