Maison > base de données > tutoriel mysql > Comment remplacer la fonction ISNULL de SQL par LINQ ?

Comment remplacer la fonction ISNULL de SQL par LINQ ?

Mary-Kate Olsen
Libérer: 2024-12-29 16:59:11
original
827 Les gens l'ont consulté

How to Replace SQL's ISNULL Function with LINQ?

É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>
}
Copier après la connexion

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;
}
Copier après la connexion

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 dans le premier bloc de code, qui autorise les valeurs nulles et fausses. En revanche, le deuxième bloc de code renvoie un booléen, donc null doit être explicitement attribué à false si aa est nul.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal