首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlConnection和HttpContext

SqlConnection和HttpContext
EN

Stack Overflow用户
提问于 2013-08-06 09:30:55
回答 2查看 222关注 0票数 0

我可以把SqlConnection存储在HttpContext里吗?我的意思是,如何跨多个类共享一个SqlConnection

在我的项目中,每个类都继承了一个打开和关闭连接的抽象基类。这个类识别一个SqlConnection是否是由另一个类打开的,在这种情况下使用它。

我可以用不是HttpContext的另一种方式来存储这个连接?还有另一种方法可以做到这一点,特别是。通过层间的连接?

THX

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-06 09:39:35

我想知道为什么您需要存储一个SqlConnection。闻起来不太好。

如果确实需要跨多个类共享一个SqlConnection,则依赖注入可能是一个更好的选择。让一个连接工厂实例化一个连接对象,并根据需要传递它。

否则,让DBMS担心控制您的连接资源。每次需要连接时,都创建、打开和关闭连接。

票数 0
EN

Stack Overflow用户

发布于 2013-08-06 09:43:28

你走错路了。除非您需要像Lasse V. Karlsen在他的评论中提到的那样共享事务上下文,否则您不应该遵循这种想法。如果您担心性能,而这正是您希望保持一个连接打开和共享的原因,那么它也是错误的。

例如,在ADO.NET的情况下,您有连接池。这意味着,即使您在连接上调用close,它仍未关闭,它将返回给池程序。这是一种通过管理连接来跟踪连接并最大限度地提高效率的机制。如果您调用Open以获得一个新的连接,那么在幕后您可能会得到一个已经存在的连接,该连接在几分钟前就已经使用过了,它仍然被池程序打开并返回以供重用。

所以,如果动力是效率,那你就不应该走这条路。它已经在较低的水平上得到了处理。请参阅http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18076459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档