Je veux juste savoir quelle est la meilleure façon de vérifier si un résultat IQueryable
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;
}
puis nous faisons quelque chose comme ça
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`
}
Tout moyen possible de vérifier que le jeu de résultats a du contenu ou non ??
Merci
list
ne sera jamais null
avec LINQ; il représentera simplement une "collection vide" si besoin est. La façon de tester est avec la méthode d'extension Any
:
if (list.Any()) {
// list has at least one item
}
Une exception sera levée si IQueryable n'obtient aucun résultat. J'utilise:
using System.Data.Entity; //for Async support in EF
var tQ = await _tableRepository.DisplayAll();
try { return await tQ.ToListAsync(); }
catch { return null; }
pour intercepter l'exception et retourner null; ou une liste vide si vous préférez,
catch { return new List<Table>(); }