如何将SQL查询转换为LINQ到实体查询
本文关键字:查询 LINQ 实体 转换 SQL | 更新日期: 2023-09-27 18:19:11
SQL查询:
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();
谁能帮我一下?
我明白了:
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
};