LINQ左连接无法正常工作

时间:2017-04-23 12:47:25

标签: c# sql entity-framework linq

LINQ中的左连接出了问题。

我的SQL查询工作正常:

VoilierInscrit vi 
join Course co on vi.idCourse = co.Id_Course
join Epreuve ep on co.Id_Course = ep.idcourse
LEFT join Penalite pe on vi.Id_VoilierInscrit = pe.VoilierInscrit
join Tps tp on ep.Id_Epreuve = tp.IDepreuve
where tp.IDvoilierInscrit = vi.Id_VoilierInscrit
ORDER BY Temps

结果('Temps'和'Duree'是TimeSpan):

NumeroSerie      Temps       Duree
  KB48          00:05:00      NULL
  JY90          00:15:00     00:05:00

但是当我在LINQ中执行它时,我收到以下错误: '无法将null值分配给类型为System.TimeSpan且不可为空的成员'

var resultat = from vi in db.VoilierInscrit
               from co in db.Course.Where(x => vi.idCourse == x.Id_Course)
               from ep in db.Epreuve.Where(x => co.Id_Course == x.idcourse)
               from pe in db.Penalite.Where(x => vi.Id_VoilierInscrit == x.VoilierInscrit)
               .DefaultIfEmpty()
               from tps in db.Tps.Where(x => ep.Id_Epreuve == x.IDepreuve)
               where tps.IDvoilierInscrit == vi.Id_VoilierInscrit

               select new
               {

                   temps = tps.Temps,
                   SerialNumber = vi.NumeroSerie,
                   duree = pe.Duree
               };

我真的不知道问题出在哪里 - 我的LINQ语法似乎是正确的。

0 个答案:

没有答案