【发布时间】:2008-12-27 17:43:49
【问题描述】:
因此,根据对my previous question 的回答,如果在事务期间打开了多个连接,即使这些连接都具有相同的连接字符串,事务 确实 也会从 LTM 提升到 DTC .
那么,我的下一个问题是,可以采用什么策略来避免这种“功能”?在我看来,根据资源使用情况,我想确保尽可能多地使用 LTM。在正确面向对象的业务逻辑层中,我能想到的唯一方法是在数据访问层创建一个请求级静态连接对象,并在调用之间共享该对象,直到请求完成(这里的隐含知识是业务对象实体是谨慎的并且不知道它们会被调用的顺序,另外一个事实是人们不希望将连接对象冒泡到业务对象层,因为那将是数据存储实现细节渗入另一层)。
还有其他人有什么想法不会完全破坏 n 层系统的层封装吗?
【问题讨论】:
-
这是一个很好的问题,我也在寻找答案。所有的答案在简单的例子中总是不足的,但从不考虑封装。
-
顺便说一句,由于问题已过时,您如何解决?我正在考虑使用“环境”连接并在内部进行一些事务计数。这很糟糕,我知道。
标签: architecture ado.net transactions n-tier-architecture system.transactions