0

SQL查詢:如何將SQL查詢轉換爲LINQ to Entities查詢?

SELECT 

'ETS' AS dataSource, 
ES.ShowId, 
ES.Title, 
EE.EpisodeId, 
EE.Title AS EpisodeTitle, 
ELG.GenreDescription 
AS Genre, 
ELST.ShowTypeDescription, 
dbo.TVData_UDF_ETS_DirectorString(ES.ShowId) AS DirectorName, 
ES.ReleaseYear, 
EE.SeasonEpisode 

FROM dbo.ETS_Shows AS ES 
LEFT OUTER JOIN dbo.ETS_Episodes AS EE 
ON ES.ShowId = EE.ShowId 

LEFT OUTER JOIN dbo.ETS_LKP_Genres AS ELG 
ON ES.GenreCode = ELG.GenreCode 

LEFT OUTER JOIN dbo.ETS_LKP_ShowTypes AS ELST 
ON ES.ShowTypeCode = ELST.ShowTypeCode 

我試圖做到這一點,但它沒有返回正確的數據:

var data = db.ETS_Shows.Include("ETS_Episodes").Include("ETS_LKP_Genres").Include("ETS_LKP_ShowTypes").ToList(); 

誰能給我個忙嗎?

回答

0

我想通了:

var query = from shows in db.ETS_Shows 
         from episodes in db.ETS_Episodes.Where(v => v.ShowId == shows.ShowId).DefaultIfEmpty() 
         from genres in db.ETS_LKP_Genres.Where(s => s.GenreCode == shows.GenreCode).DefaultIfEmpty() 
         from showTypes in db.ETS_LKP_ShowTypes.Where(z => z.ShowTypeCode == shows.ShowTypeCode).DefaultIfEmpty() 
         from directors in db.ETS_Directors.Where(p => p.ShowId == shows.ShowId).DefaultIfEmpty() 
         select new 
          { 
           dataSource = "ETS", 
           shows.Title, 
           episodes.EpisodeId, 
           episodes.EpisodeTitle, 
           genres.GenreDescription, 
           showTypes.ShowTypeDescription, 
           directors.Name, 
           shows.ReleaseYear, 
           episodes.SeasonEpisode, 
           shows.ShowId 
          };