伙计们,我将使用企业库(4.1),尤其是DAAB。我有问题要问:
什么是最好的方法?为什么:
- Every time when I need to run a DbCommand I create Database instance using DatabaseFactory.CreateDatabase();
- I have a base class with instanced Database (using the same CreateDatabase() static method) and something like public property which returns the instanced database.
谢谢。
发布于 2014-01-31 14:32:15
这不是问题。创建数据库类具有较低的开销。
但是,实际上创建数据库连接有很高的开销,这就是为什么Windows做连接池的原因。简单地说,当进程第一次创建DB连接时,它会在连接池中查找具有完全相同连接字符串的现有连接。如果找不到,就会创建一个新的(昂贵的操作)。当进程关闭它并让它超出范围时,它实际上并不关闭到DB的连接,而是将它放在connection中。直到同一个进程使用相同的连接字符串创建另一个连接时,才会有保留。然后,它从连接池中提供已经存在的连接池。
您可以关闭连接池(通过连接字符串中的设置),但这通常是一个非常糟糕的主意。
https://stackoverflow.com/questions/359028
复制相似问题