Hoe kan ik de querys waarop een IQueryable-methode filtert beperken?

Is het mogelijk om alleen bepaalde eigenschappen filterbaar te laten zijn op een methode die IQueryable in C# heeft getoond.

Als alternatief zou ik in staat zijn om de where-clausules te controleren en alleen door degenen die filteren op bepaalde eigenschappen toestaan?

1
IQueryable niet blootstellen maar het specificatiepatroon gebruiken is veel eenvoudiger en wordt vaak aanbevolen.
toegevoegd de auteur Gert Arnold, de bron

1 antwoord

IQueryable exposes the Provider property, which is typed as an IQueryProvider. This query provider is responsible for ultimately acting on the query and returning the appropriate results (although typically large portions of the necessary work are delegated to helper classes, it's the query provider that orchestrates the process).

Daarom is het korte antwoord op de vraag: om aangepaste logica in het queryproces in te voegen, moet u de implementatie van IQueryable.Provider controleren en een queryprovider laten retourneren die uiteindelijk deze logica implementeert.

Als u van plan bent een aangepaste queryprovider aan te maken, bekijkt u deze MSDN-walkthrough en ook deze uitstekende serie blogposts door Matt Warren voor meer informatie.

0
toegevoegd