Dapper lançant des exceptions NullReferenceExceptions lors de l'exécution d'une requête comportant des FK nullables

c# dapper mapper sql

Question

J'essaie d'exécuter une requête avec un certain nombre de jointures à gauche, car l'une des colonnes de clé étrangère est nullable, et lorsque Dapper trouve un enregistrement dans lequel cette colonne est nullable, une exception NullReferenceException est lancée lorsque le mappeur tente de mettre le résultat ensemble. J'utilise "Id" comme colonne PK et je n'ai rencontré aucun problème avec les autres tables, mais je ne suis pas sûr de la meilleure façon de contourner ce problème.

Je dois être en mesure de retourner un ensemble de résultats dans lesquels certains champs (et enregistrements associés) peuvent être nuls et d'autres peuvent ne pas être nuls. Existe-t-il un moyen de contourner ce problème sans avoir deux requêtes distinctes?

voici une partie de la requête .. ani.DeviceMacAddress est le FK nullable.

(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;
    },

Réponse acceptée

Je suppose que adm est nulle, à partir de l'emplacement. Alors ... vérifiez pour cela:

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;


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi