Problema con resultado de datos erroneo
-
martes, 18 de diciembre de 2012 11:23Hola!!
Tengo el siguiente problema:
Yo hago una consulta mediante linq y por ejemplo de Empleado1 me tiene que devolver lo siguiente:
Proyecto Empleado Fecha Horas
P0001757 Empleado 1 2013-01-01 00:00:00.000 8
P0001757 Empleado 1 2013-02-01 00:00:00.000 8
P0001754 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2013-01-01 00:00:00.000 43
CABL201200000005 Empleado 1 2012-12-01 00:00:00.000 1
Y el linq me devuelve...
Proyecto Empleado Fecha Horas
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
CABL201200000030 Empleado 1 2012-12-01 00:00:00.000 12
Todos los registros exactamente iguales.. pero lo raro es que si yo transformo la consulta linq en un string para que me saque la sql, la copio en el management studio me devuelve los resultados bien.
He actualizado el modelo, lo he eliminado lo he vuelto a añadir y nada devuelve lo mismo... Lo mas extraño de todo es que no he realizado ningun cambio y antes devolvia todo bien.
¿Alguna solucion?
Muchisimas gracias!!!
Todas las respuestas
-
martes, 18 de diciembre de 2012 14:33Moderador
pero lo raro es que si yo transformo la consulta linq en un string para que me saque la sql
no puedes saber como linq genera la query, la unica forma es usando el Sql Server Profiler y monitoreando la query que este lanza contra la db
sino es solo adivinar
como es el linq que generas? has probado usar el Distinct()
Leandro Tuttini
Blog
Buenos Aires
Argentina -
miércoles, 19 de diciembre de 2012 9:42
el linq que genero es el siguiente
lstPlanificadoPorCategoria = (
fromp inContexto.Planificaciones_Informes_Delineacion orderbyp.U_reffase descendingwherep.categoria == categoria & p.departamento == departamento & p.U_fechaini >= FechaInicio & p.U_fechaini <= FechaFin selectp).ToList();
Si lo convierto a string el codigo que obtengo es algo parecido a esto... y si esto lo pongo en el management studio devuelve los resultados correctamente... Gracias!!!!!!
SELECT [Project1].[Code] AS [Code], [Project1].[Name] AS [Name], [Project1].[U_refproy] AS [U_refproy],
[Project1].[U_reffase] AS [U_reffase], [Project1].[U_rrhh] AS [U_rrhh], [Project1].[U_rrhhname] AS [U_rrhhname],
[Project1].[U_dedicacion] AS [U_dedicacion], [Project1].[U_artpph] AS [U_artpph],
[Project1].[U_fechaini] AS [U_fechaini], [Project1].[U_fechafin] AS [U_fechafin],
[Project1].[U_linenum] AS [U_linenum], [Project1].[U_version] AS [U_version], [Project1].[U_horas] AS [U_horas],
[Project1].[U_tipotrabajo] AS [U_tipotrabajo], [Project1].[mes] AS [mes], [Project1].[año] AS [año],
[Project1].[categoria] AS [categoria], [Project1].[departamento] AS [departamento],
[Project1].[teamID] AS [teamID], [Project1].[typeID] AS [typeID], [Project1].[roleID] AS [roleID]
FROM ( SELECT [Extent1].[Code] AS [Code], [Extent1].[Name] AS [Name],[Extent1].[U_refproy] AS [U_refproy],
[Extent1].[U_reffase] AS [U_reffase], [Extent1].[U_rrhh] AS [U_rrhh], [Extent1].[U_rrhhname] AS [U_rrhhname],
[Extent1].[U_dedicacion] AS [U_dedicacion], [Extent1].[U_artpph] AS [U_artpph],
[Extent1].[U_fechaini] AS [U_fechaini], [Extent1].[U_fechafin] AS [U_fechafin],
[Extent1].[U_linenum] AS [U_linenum], [Extent1].[U_version] AS [U_version],
[Extent1].[U_horas] AS [U_horas], [Extent1].[U_tipotrabajo] AS [U_tipotrabajo],
[Extent1].[mes] AS [mes], [Extent1].[año] AS [año], [Extent1].[categoria] AS [categoria],
[Extent1].[departamento] AS [departamento], [Extent1].[teamID] AS [teamID], [Extent1].[typeID] AS [typeID],
[Extent1].[roleID] AS [roleID] FROM (SELECT [Planificaciones_Informes_Delineacion].[Code] AS [Code],
[Planificaciones_Informes_Delineacion].[Name] AS [Name],
[Planificaciones_Informes_Delineacion].[U_refproy] AS [U_refproy],
[Planificaciones_Informes_Delineacion].[U_reffase] AS [U_reffase],
[Planificaciones_Informes_Delineacion].[U_rrhh] AS [U_rrhh],
[Planificaciones_Informes_Delineacion].[U_rrhhname] AS [U_rrhhname],
[Planificaciones_Informes_Delineacion].[U_dedicacion] AS [U_dedicacion],
[Planificaciones_Informes_Delineacion].[U_artpph] AS [U_artpph],
[Planificaciones_Informes_Delineacion].[U_fechaini] AS [U_fechaini],
[Planificaciones_Informes_Delineacion].[U_fechafin] AS [U_fechafin],
[Planificaciones_Informes_Delineacion].[U_linenum] AS [U_linenum],
[Planificaciones_Informes_Delineacion].[U_version] AS [U_version],
[Planificaciones_Informes_Delineacion].[U_horas] AS [U_horas],
[Planificaciones_Informes_Delineacion].[U_tipotrabajo] AS [U_tipotrabajo],
[Planificaciones_Informes_Delineacion].[mes] AS [mes],
[Planificaciones_Informes_Delineacion].[año] AS [año],
[Planificaciones_Informes_Delineacion].[categoria] AS [categoria],
[Planificaciones_Informes_Delineacion].[departamento] AS [departamento],
[Planificaciones_Informes_Delineacion].[teamID] AS [teamID],
[Planificaciones_Informes_Delineacion].[typeID] AS [typeID],
[Planificaciones_Informes_Delineacion].[roleID] AS [roleID]
FROM [dbo].[Planificaciones_Informes_Delineacion] AS [Planificaciones_Informes_Delineacion]) AS [Extent1] WHERE ([Extent1].[U_rrhh] =40) AND ([Extent1].[U_fechaini] >= '01/12/2012') AND ([Extent1].[U_fechaini] <= '01/03/2013')) AS [Project1] ORDER BY [Project1].[U_reffase] DESC

