3

我想找到在查询进入 SQL Server 之前触发的事件。并在从服务器检索任何数据之前对 sql 命令进行一些更改。一般来说,我的目标是创建一个继承一些基本 ado.net 类的类,我可以在 sql 进入服务器之前通过在查询中添加 WHERE 条件来过滤数据。我需要为我的所有应用程序做出共同的决定,但不是单一案例。

4

1 回答 1

3

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

但是,这里更好的方法可能是 tweek 上游实现。在很多情况下,盲目地添加“where”会失败。

于 2013-06-23T14:53:44.017 回答