DAAB,使用数据库实例的最佳方法是

时间:2008-12-11 11:21:56

标签: database enterprise-library daab

伙计们,我将使用Enterprise Library(4.1),尤其是DAAB。这是我有问题:

  1. 最佳方法是什么?为什么:

    • 每当我需要跑步时 DbCommand我创建数据库实例 运用 DatabaseFactory.CreateDatabase();

    • 我有一个带有instanced的基类 数据库(使用相同的 CreateDatabase()静态方法)和 像公共财产这样的东西 返回实例化数据库。

  2. 创建Database类实例的“重”或快/慢怎么样?如果我每次需要DbCommand时都这样做会怎么样?

  3. 谢谢。

1 个答案:

答案 0 :(得分:0)

这不是问题。创建数据库类的开销很低。

但是,实际创建数据库连接的开销很高,这就是Windows进行连接池的原因。简而言之,进程第一次创建数据库连接时,它会在连接池中查找具有完全相同连接字符串的现有连接。如果找不到,则会创建一个新的(昂贵的操作)。当进程关闭它并让它超出范围时,它实际上并不关闭与DB的连接,而是将它放在连接池中。只有相同的进程创建具有相同连接字符串的另一个连接才会保留。然后它会从连接池中为您提供已存在的一个。

您可以关闭连接池(通过连接字符串中的设置),但这通常是一个非常糟糕的主意。