所以我想弄清楚我的数据库连接的最佳实践。我有一个大的.NET GUI作为MySQL数据库的前端。目前,我在应用程序加载时打开一个连接,并将其用于我需要的任何交互。但是,整个GUI是单线程的。多线程和数据库连接
当我开始为大型查询添加BackgroundWorkers并执行时,我很担心我的打开连接。例如,我知道我一次只能在该连接上打开一个dataReader。有了多个线程,用户可以尝试实例化更多。
为应用程序保持一个打开的连接与为每个交互打开一个新的连接有什么优点/缺点?
这是什么常见的设计模式?
Thanks-
乔纳森
当你说的事务支持是不可能的ConnectAndDisconnect情况下,你说的是一个“全球性”的交易,因为应用程序的启动,将支持回滚一切吗?如果没有,即使使用ConnectAndDisconnect,您也可以获得事务支持。你必须安排,以便确定“高层次”的事务,然后使用例如“TransactionScope的”在C#代码(http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx) – FrenchData 2010-02-23 10:50:56
@法国数据 我被描述为来自业务逻辑层的中层交易。我们已经尝试了TransactionScope的方法,但它是不够的,我们很快就遇到了麻烦,因为中间层的代码在不同的不可预见的方式使用。解决方案在某种程度上是两种方法的混合体,我们的ConnectionManager类支持这两种方法。 当然,从应用程序开始就不需要交易,这就是为什么混合解决方案更好。 – AureliusMarcus 2010-02-24 11:30:46