Entity framework devuelve null para una fila si la primera columna en esa fila es nula

Estoy viendo un comportamiento extraño en mi modelo Entity Framework. Tengo una consulta que se ve así:

<code>var rows = ( from alarm in context.Alarms
             join temp  in context.ListDetails on alarm.ListDetailId equals  temp.ListDetailId into entries from entry in entries.DefaultIfEmpty()
             join read  in context.Reads       on alarm.ReadId       equals  read.ReadId
             join plate in context.Images      on alarm.ReadId       equals plate.ReadId
             where alarm.IActive == 1 && ! alarm.TransmittedAlarm 
             where  read.IActive == 1 
             where plate.IActive == 1 && plate.ImageTypeId == 2
             select new { alarm, entry, read, plate } ).ToArray();
</code>

La consulta devuelve todas las columnas en orden alfabético por nombre de columna. Resulta que esta columna es NULA para unas pocas filas en el conjunto de resultados. Cuando amplío la variable de filas en el depurador, veo que toda la fila es nula.

EDIT: Algunas aclaraciones.

Por "primera columna", me refiero a la primera columna de la primera fila, es decir, en "SELECCIONAR A, B, C DE ...", quiero decir A. Simplemente sucede que la consulta que crea Entity Framework devuelve todo el Las columnas en el conjunto de resultados unidos en orden alfabético, y la primera alfabéticamente es nula y es nula para algunas filas.

La columna en cuestión no es una clave primaria; Si fuera una clave primaria, no podría ser nula.

Cuando Entity Framework procesa las filas de los datos devueltos en objetos, mira el valor de la primera columna en cada fila. Si esa columna es nula, devuelve nulo para la fila, en lugar de un objeto con la propiedad que corresponde a esa columna establecida en nulo.

No creo que esto tenga nada que ver específicamente con una unión externa izquierda; Simplemente sucede que mi consulta usa uno. Sin embargo, no he hecho ninguna prueba para verificar esto, así que es solo una suposición.

Alguien ha visto esto antes? ¿Alguien tiene una solución para esto?

Tony

Respuestas a la pregunta(2)

Su respuesta a la pregunta