Y a-t-il un événement qui a été déclenché avant que la requête ne soit envoyée à SQL Server?

Je veux find l'événement qui a été déclenché avant que la requête ne soit envoyée à SQL Server. et faites quelques changements à la command sql avant que toutes datatables soient récupérées du server. Généralement mon but est de créer une class qui hérite de la class de base ado.net, où je peux filterr datatables avant que sql ne passe au server en ajoutant la condition WHERE à la requête. J'ai besoin d'une décision commune pour toutes mes requests, mais pas pour un seul cas.

ADO.NET prend en charge le model de décorateur . Techniquement, vous pouvez créer votre propre sous-class DbConnection qui enveloppe la connection actuelle et appliquer vos propres modifications juste avant de passer les appels ExecuteScalar / ExecuteNonQuery / etc. Malheureusement, la nécessité d'envelopper la connection, la command, les parameters et le lecteur rend cela un peu difficile, regardez un peu le "mini-profileur" pour un exemple de ceci (il utilise le model pour fournir l'instrumentation et la journalisation).

Cependant, une meilleure approche ici pourrait être de tweek la mise en œuvre en amont. Dans de nombreux cas, l'ajout aveugle d'un "où" échouera.