web-dev-qa-db-fra.com

Comment vérifier une var pour une valeur nulle?

J'utilise PetaPoco Micro-ORM avec C # 4.0.

Le code ci-dessous récupère une seule ligne de la base de données:

var result = db.SingleOrDefault<TdUsers>(getUserQuery);

Je voudrais vérifier si le résultat contient ou non des lignes et s'il est nul. Quelle est la meilleure façon de procéder?

14
RKh
if (result == null || result.Count() == 0) {
    // Checks whether the entire result is null OR
    // contains no resulting records.
}

Je pense que le problème n'est pas dans votre vérification de null, car linq est un chargement paresseux. Votre erreur réside dans l'utilisation de l'expression db.SingleOrDefault<TdUsers>(getUserQuery);.

.Single<T>(expression) ne retourne pas null - il génère une erreur si le résultat ne renvoie aucune valeur. .SingleOrDefault<T>(expression), cependant, renvoie une valeur nulle si l'expression ne donne aucune valeur - et est donc mieux combinée avec une vérification de type if (result == null), comme vous l'utilisez ici.

20
Parv Sharma
var result = db.SingleOrDefault<TdUsers>(getUserQuery);

Dans le code ci-dessus, SingleOrDefault retournera null vale ou le type générique spécifié (il est connu à l'exécution).

Pour vérifier si les valeurs retournées sont nulles ou non, vous pouvez simplement utiliser

if(result!=null)
{
//do your code stuff 
}
else
{
//stuff do be done in case where result==null
}
3
shanky

Vous pourriez faire:

result.ToList() // Convert result to a list

if (result.Any()) {
   // result is not null
}
3
Darren
 var v = result.ToList();

maintenant vérifiez

if (v.Count > 0)
1
Romil Kumar Jain