Resultados diferentes en Entity Framework que LINQ to SQL

Primero estaba usando LINQ to SQL en mi proyecto y usé la siguiente declaración:

var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
            .Where(p => p.ProjectID == ProjectID);

Eso devolvió correctamente los tres correos electrónicos distintos de la vista ProjectRouteEmails. Los ID devueltos de la tabla Emails fueron 117, 591 y 610.

Cambié a LINQ to Entities y uso la misma vista y la misma declaración LINQ, pero aunque estoy recuperando tres registros, es el primer registro, ID 117, el que se devuelve tres veces.

Intenté escribir la declaración LINQ de esta manera:

var ProjectRouteEmails = from p in EmailManagerDAL.Context.ProjectRouteEmails
                                 where p.ProjectID == ProjectID
                                 select p;

pero no hizo ninguna diferencia; el mismo registro regresó tres veces.

Entré en SQL Server Management Studio y ejecuté la consulta:

select * from ProjectRouteEmails (nolock) 
where ProjectID = 12

y se devuelven los tres registros únicos correctos.

¿Qué está pasando aquí?

¡Gracias!

preguntado el 10 de mayo de 11 a las 13:05

Verificaría dos veces cómo está iterando a través de esto para generar ... suena sospechoso -

Solo lo estoy vinculando a una cuadrícula. También tengo un punto de interrupción establecido y examinarlo en la ventana de observación muestra los mismos resultados. -

1 Respuestas

Asegúrese de que la clave de entidad esté configurada correctamente para ProjectRouteEmails en Entity Data Model. A veces, las claves de entidad se estropean cuando importa la vista en el modelo.

contestado el 10 de mayo de 11 a las 17:05

Interesante ... ¿puede proporcionar información específica o más detalles? ¿Está en el objeto entidad? O ... ¿algunos metadatos relacionales? Algunos pueden usar las herramientas para crear el modelo de datos de entidad sin tener que profundizar en las tuercas y tornillos. - Resumen

¡¡¡¡ESO FUE TODO!!!! ¡Gracias Aducci! Parecía haber seleccionado arbitrariamente un campo de texto como clave de entidad. Lo cambié al campo correcto y funciona. ¡Gracias! - user390480

Solo para referencia futura para otros. Abra el edmx y luego haga clic con el botón derecho en el campo y agregue la clave de entidad. - causita

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.