J'ai des méthodes qui ensuite enchaînent sur d'autres, en passant IQueryable. Voici un échantillon réduit.Vérifie IQueryable <T> .Any() nécessaire?
public static IQueryable<Deal> Deals(this DbContext context)
{
Guard.ThrowIfNull(context, "context");
var r = new ReadRepo<Deal>(context);
return r.FindBy()
.Include("Deals_SitePost")
.Include("Deals_CommunityPost")
.Include("Deals_Preorder")
.Include("Deals_Product")
.Include("Deals_Sale")
.Include("Deals_VoucherCode")
.Include("DealSubcategories");
}
public static IQueryable<Deal> ByStore(this IQueryable<Deal> deals, int storeId)
{
return deals.Where(d => d.StoreId == storeId);
}
public static IQueryable<Deal> WhereFeatured(this IQueryable<Deal> deals)
{
return deals.Where(d => d.Deals_SitePost.IsNotNull() && d.Deals_SitePost.IsFeatured);
}
Comme vous pouvez le voir, il y a une entrée « » et offres deux méthodes d'extension que j'utiliser pour étendre la requête.
Dans ce scénario, il est sage de vérifier et de retourner où! IQueryable.Any() en termes de performance avant l'instruction de requête, ou cela n'aura pas d'importance?
Pourquoi ne pas simplement le tester? – sloth
Question de performance .... le mieux serait de vérifier avec un 'chronomètre' ou comme sage et postez-le comme une réponse, – V4Vendetta
Il n'est en fait pas nécessaire de vérifier 'Any()'. Vous devriez cependant vérifier que le 'IQueryable' n'est pas nul! –
Franky