在查询进入SQL Server之前是否有任何事件被触发?

时间:2013-06-23 14:44:49

标签: c# sql-server ado.net

我想查找在查询进入SQL Server之前触发的事件。在从服务器检索任何数据之前,在sql命令中进行一些更改。 一般来说,我的目标是创建一个继承了一些基础ado.net类的类,我可以在sql通过addnig WHERE条件进入服务器之前过滤数据。对于我的所有申请,我需要共同的解决方案,但不是单一案例。

1 个答案:

答案 0 :(得分:3)

ADO.NET支持装饰器模式。从技术上讲,您可以创建自己的DbConnection子类来包装实际的连接,并在传递ExecuteScalar / ExecuteNonQuery / etc调用之前应用您自己的更改。不幸的是,包装连接,命令,参数和读取器的需要使得这有点尴尬,请看一下“mini-profiler”的一个例子(它使用模式提供检测和记录)。

然而,这里更好的方法可能是调整上游实现。在许多情况下,盲目地添加“where”将失败。