1

我有带有许多静态实用程序类的 ac# dll。他们都需要数据库访问,目前每个类都有自己的连接。这变得很麻烦,我想要一个连接的“提供者”,所以一个类可以做类似 ConnProvider.Query(...) 的事情,其中​​ ConnProvider 是一个所有实用程序类都可以访问的静态类。我想 ConnProvider 必须管理某种连接池,但我不完全确定这是否是实现此功能的正确方法,如果是,内部结构会如何。我在正确的轨道上吗?这不是基于网络的,线程安全不是必需的(但对未来来说会很好),并且只有少数应用程序/机器将使用这个 dll,如果这有助于简化它的话。

4

4 回答 4

2

您不应该编写自己的连接池。该框架的一个已经足够好了。

您编写的任何连接提供程序实用程序实际上应该只是使用您拥有的任何配置信息来创建连接。本质上它只会封装查询字符串。

每当您进行查询时,调用提供程序以创建连接、完成工作并关闭连接。让框架处理池化物理连接。

于 2009-04-21T15:31:08.630 回答
0

在您的情况下,是否有可能让所有辅助类从具有连接的 ConnectionBase 子类化?

于 2009-04-21T15:30:41.080 回答
0

让您的“ConnProvider”为每个查询创建新连接,并让 ADO.NET 和您的 RDBMS 管理连接池。它们已经设置好并进行了优化,可以代表您这样做。

于 2009-04-21T15:30:47.350 回答
0

不要尝试自己处理连接池。.NET 肯定比以往任何时候都更擅长。您可以将其作为连接的某种单例模式 db-class 来解决。

于 2009-04-21T15:31:53.073 回答