I have a query like that :
context.Diffusions.Where(x => x.ProgrammeId == programmeID).Include("Chaines").Include("Version").ToList();
The query generated is:
SELECT 
[Extent1].[Duree] AS [Duree], 
[Extent1].[Id] AS [Id], 
[Extent1].[ProgrammeId] AS [ProgrammeId], 
[Extent1].[VersionId] AS [VersionId], 
[Extent1].[ChaineId] AS [ChaineId], 
[Extent1].[Debut] AS [Debut], 
[Extent1].[Fin] AS [Fin], 
[Extent1].[ReRun] AS [ReRun], 
[Extent1].[DateModification] AS [DateModification], 
[Extent1].[DateDiffusion] AS [DateDiffusion], 
[Extent2].[Id] AS [Id1], 
[Extent2].[Nom] AS [Nom], 
[Extent2].[Code] AS [Code], 
[Extent2].[Abreviation] AS [Abreviation], 
[Extent3].[Id] AS [Id2], 
[Extent3].[ProgrammeId] AS [ProgrammeId1], 
[Extent3].[CleVersion] AS [CleVersion], 
[Extent3].[Numero] AS [Numero], 
[Extent3].[NumeroModification] AS [NumeroModification], 
[Extent3].[VO] AS [VO], 
[Extent3].[TitrePresse] AS [TitrePresse], 
[Extent3].[Description] AS [Description], 
[Extent3].[Remarque] AS [Remarque], 
[Extent3].[SousTitre] AS [SousTitre], 
[Extent3].[DureeTheorique] AS [DureeTheorique], 
[Extent3].[Format] AS [Format], 
[Extent3].[Interdit] AS [Interdit], 
[Extent3].[LangueId] AS [LangueId], 
[Extent3].[TypeCoteDiffusionId] AS [TypeCoteDiffusionId]
FROM   [dbo].[Diffusion] AS [Extent1]
INNER JOIN [dbo].[Chaine] AS [Extent2] ON [Extent1].[ChaineId] = [Extent2].[Id]
INNER JOIN [dbo].[Version] AS [Extent3] ON [Extent1].[VersionId] = [Extent3].[Id]
WHERE [Extent1].[ProgrammeId] = 1926475
My problem is that the Table as a lot of entries and it makes an inner join for each entry and then do the "WHERE" so it takes like 6sec.
When I do the query without the include it's instant. I would like to have a linq query that do the "WHERE" and then the "INCLUDE" for each row returned without having to do it manually for each entry (a Programme can have like 1 000 diffusions).
 
    