Dapper lanza NullReferenceExceptions al ejecutar una consulta que tiene FK nulos

c# dapper mapper sql

Pregunta

Estoy intentando ejecutar una consulta que tiene un número de combinaciones a la izquierda, ya que una de las columnas de clave externa es anulable, y cuando Dapper encuentra un registro en el que esa columna en particular es anulable, se lanza una NullReferenceException cuando el asignador intenta poner el resultado juntos. Estoy usando 'Id' como mi columna PK y no he tenido ningún problema con ninguna de las otras tablas, pero no estoy seguro de cuál es la mejor manera de evitarlo.

Necesito poder devolver un conjunto de resultados en los que algunos de los campos (y registros relacionados) pueden ser nulos, y otros pueden no ser nulos. ¿Hay alguna forma de evitar esto sin tener dos consultas separadas?

aquí hay parte de la consulta .. ani.DeviceMacAddress es el FK que admite nulos.

(query,
(ani, adm, d, ma, sma, n, i, sni) =>
    {
        ani.DeviceMacAddress = adm;
        adm.Device = d;  // Throws NullReferenceException here
        adm.MacAddress = ma;
        ani.NetworkV4 = n;
        ani.IpAddressV4 = i;
        ani.Status = sni;
        ma.Status = sma;
        return ani;
    },

Respuesta aceptada

Supongo que adm es nulo, desde la ubicación. Entonces ... revisa eso:

ani.DeviceMacAddress = adm;
if(adm != null) {
    adm.Device = d;
    adm.MacAddress = ma;
}
ani.NetworkV4 = n;
ani.IpAddressV4 = i;
ani.Status = sni;
if(ma != null) {
    ma.Status = sma;
}
return ani;


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué