Method FilterBlocked
- Namespace
- UsluzionicaServer.Services
- Assembly
- UsluzionicaServer.dll
FilterBlocked(IQueryable<Listing>, AppDbContext, string?)
Filtrira oglase blokiranih iz bilo kog upita nad Listings.
Koristi se na svakom mestu koje vraća oglase — pretraga, omiljeni, profil uslugodavca. Jedan metod, da se pravilo ne prepisuje po servisima i ne raziđe.
NOT EXISTS, a ne učitavanje skupa blokiranih u memoriju pa Contains(): Contains pravi IN (@p1, @p2, ...) što radi dok je lista kratka, a puca kad neko blokira stotine ljudi — SQL Server ima granicu broja parametara, a plan upita postane neupotrebljiv. NOT EXISTS ne zavisi od veličine i koristi oba indeksa iz AppDbContext.
public static IQueryable<Listing> FilterBlocked(IQueryable<Listing> query, AppDbContext db, string? viewerId)
Parameters
queryIQueryable<Listing>dbAppDbContextviewerIdstring