【发布时间】:2011-03-16 14:03:47
【问题描述】:
关于在 .NET 应用程序中管理数据库连接的最佳实践——我知道,一般来说,传递连接对象是不好的。
但是,我有一些特殊的好奇心:
1.我有两个业务实例 不同类别的对象,在一个 亲子关系(孩子 是私人的。)以下哪项 最好?
保持一个私有静态连接打开和共享,供两个对象使用,并保持打开状态,直到父对象被释放。
保持两个私有静态连接打开,每个对象一个,而不是 关闭,直到对象被处置。
不要保持静态连接;打开然后关闭一个新的 连接每个需要它的方法。但是,我的大多数方法只运行 1-3 个查询,所以这似乎效率低下...?
2。我的第二个问题本质上是相同的,但针对的是单一形式。这里有什么最好的?
在表单的生命周期内保持一个私有静态连接打开和共享。
不要保持静态连接;为需要它的表单中的每个方法打开并随后关闭连接(同样,每个方法只需 1-3 个查询。)
【问题讨论】:
-
这是 winform 还是 ASP.Net 应用程序?
-
理论上你不应该从你的业务逻辑中访问数据库——它应该在一个单独的数据访问类中。 (例如,将来您需要将它们离线存储在 XML 中,或者使用 Oracle 而不是 SQL Server……您不想重新编写业务逻辑!)。现在要回答了..
-
@Rob:我认为您应该阅读我认为重复的问题。问题不同,但那里的答案实际上回答了你的问题。如果您认为这不能回答它,我敢打赌,其他 239 个具有相同标签的问题之一会回答它。
-
不敢相信有多少人建议保留连接对象并保持活动状态.. 这是不对的!
-
@Kieren Johnstone:同意。 @Rob:我认为您真的应该考虑为什么您的业务对象对数据库连接一无所知。
标签: .net database-connection connection-pooling