Équivalent LINQ de la fonction ISNULL de SQL
Question :
Comment pouvez-vous émuler le comportement de la fonction ISNULL de SQL dans une requête LINQ ? Considérons une requête de jointure impliquant une colonne non nullable (xx.Online de type bit) pouvant contenir des valeurs nulles.
Réponse :
Pour gérer les valeurs nullables dans LINQ , vous pouvez utiliser l'opérateur conditionnel (? :) pour spécifier une valeur par défaut si l'objet aa est nul. Le code suivant le démontre :
select new { AssetID = x.AssetID, Status = aa == null ? (bool?)null : aa.Online; // a Nullable<bool> }
Si vous souhaitez définir la valeur par défaut sur false (plutôt que null) lorsque aa est nul, vous pouvez utiliser ce code :
select new { AssetID = x.AssetID, Status = aa == null ? false : aa.Online; }
Enquête supplémentaire :
Il est important de noter que l'utilisation de l'opérateur conditionnel avec des valeurs nulles pour les types non nullables nécessite des manutention. Dans l'exemple fourni, vous renvoyez une valeur Nullable
Comment ISNULL se compare à l'opérateur de fusion nul :
L'opérateur de coalescence nul (??) ne peut pas être utilisé directement pour remplacer ISNULL. Le ?? L'opérateur ne renvoie une valeur non nulle que si les deux opérandes sont non nuls. Par conséquent, il ne convient pas à la gestion de situations dans lesquelles un opérande peut être nul.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!