Quelle est la meilleure façon de vérifier IQueryable résultat est null
Je veux juste savoir quelle est la meilleure façon de vérifier si une IQueryable
résultat n'a pas de valeurs.
par exemple. si nous avons une méthode comme
public static IQueryable<Table> DisplayAll()
{
var db = new DataContext();
var list= from data in db.Table select data;
return list;
}
et puis nous faisons quelque chose de ce genre
var list = DisplayAll();
if(list != null)
{
//do something --- in here even if the result set has no values it will
//go to this line. It just say `enumeration yielded no results`
}
Toute façon possible de vérifier le résultat de contenu ou pas??
Grâce
Vous devez vous connecter pour publier un commentaire.
list
ne sera jamaisnull
avec LINQ; il sera tout simplement représenter un "vide de la collection" en cas de besoin. Le chemin est un test avec leAny
méthode d'extension:Any()
entraînerait uneSELECT COUNT(*) ...
et une comparaison des entiers. Même si elle va à l'idiot route de commencer à énumérer un ensemble de résultats, commentToList
être plus rapide?Count()
? Dites-le si vous voulez vous assurer que votre requête n'a qu'un seul résultat? Je pense que mon souci est dans l'utilisation deCount()
, c'est à dire, énumérant les résultats de la requête.Single
ouSingleOrDefault
, qui lancera dès qu'il énumère un deuxième élément.Une exception sera levée si IQueryable yeilds aucun résultat. J'utilise:
pour intercepter l'exception et return null; ou une Liste vide si vous préférez,
Voici ce qui fonctionne pour moi: