Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2016, 10:41
MaxPayne00
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Entity Framework no me genera la sentencia SQL que quiero

Tengo 4 entidades Profesores, Recursos, Materias y Asignaciones



La consulta que intento hacer debe recuperar todas las Asignaciones junto con sus Recursos y Materias para un Profesor dado.

Código C#:
Ver original
  1. var asignacionesPaginadas = await db.Asignaciones.AsNoTracking()
  2. .Where(a => a.Profesores.ProfesorId=profesorId)
  3. .Include(a => a.Materia)
  4. .Include(a => a.Recurso)
  5. .OrderBy(a => a.FechaHoraReserva)
  6. .Skip(_paginado.CantidadPorPagina * _paginado.PaginaActual)
  7. .Take(_paginado.CantidadPorPagina)
  8. .ToListAsync();

Y genera la siguiente sentencia SQL:

Código SQL:
Ver original
  1. SELECT
  2.     [Project1].[AsignacionId] AS [AsignacionId],
  3.     [Project1].[FechaHoraReserva] AS [FechaHoraReserva],
  4.     [Project1].[MateriaId] AS [MateriaId],
  5.     [Project1].[Nombre] AS [Nombre],
  6.     [Project1].[Carrera] AS [Carrera],
  7.     [Project1].[RecursoId] AS [RecursoId],
  8.     [Project1].[Descripcion] AS [Descripcion]
  9.     FROM ( SELECT
  10.         [Extent1].[AsignacionId] AS [AsignacionId],
  11.         [Extent1].[FechaHoraReserva] AS [FechaHoraReserva],
  12.         [Extent2].[MateriaId] AS [MateriaId],
  13.         [Extent2].[Nombre] AS [Nombre],
  14.         [Extent2].[Carrera] AS [Carrera],
  15.         [Extent3].[RecursoId] AS [RecursoId],
  16.         [Extent3].[Descripcion] AS [Descripcion]
  17.         FROM   [dbo].[Asignaciones] AS [Extent1]
  18.         INNER JOIN [dbo].[Materias] AS [Extent2] ON [Extent1].[Materia_MateriaId] = [Extent2].[MateriaId]
  19.         INNER JOIN [dbo].[Recursos] AS [Extent3] ON [Extent1].[Recurso_RecursoId] = [Extent3].[RecursoId]
  20.         WHERE [Extent1].[Profesor_ProfesorId] = @p__linq__0
  21.     )  AS [Project1]
  22.     ORDER BY [Project1].[FechaHoraReserva] ASC
  23.     OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY

Yo quiero que genere la siguiente sentencia SQL:

Código SQL:
Ver original
  1. SELECT
  2.     [Extent1].[AsignacionId] AS [AsignacionId],
  3.     [Extent1].[FechaHoraReserva] AS [FechaHoraReserva],
  4.     [Extent2].[MateriaId] AS [MateriaId],
  5.     [Extent2].[Nombre] AS [Nombre],
  6.     [Extent2].[Carrera] AS [Carrera],
  7.     [Extent3].[RecursoId] AS [RecursoId],
  8.     [Extent3].[Descripcion] AS [Descripcion]
  9.     FROM   [dbo].[Asignaciones] AS [Extent1]
  10.     INNER JOIN [dbo].[Materias] AS [Extent2] ON [Extent1].[Materia_MateriaId] = [Extent2].[MateriaId]
  11.     INNER JOIN [dbo].[Recursos] AS [Extent3] ON [Extent1].[Recurso_RecursoId] = [Extent3].[RecursoId]
  12.     WHERE [Extent1].[Profesor_ProfesorId] = @p__linq__0
  13.     ORDER BY [Extent1].[FechaHoraReserva] ASC
  14.     OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY

Estoy trabajando con la versión 6 de Entity Framework junto con SQL Server localdb 13.0.2151