0

所以我把我的交易范围拉到了aspect/policy. 我想在调用pipeline其中将调用一个或可能多个与 CRUD 相关的和/或嵌套的方法。

我可以通过注入我想要使用的数据库连接作为调用处理程序中的输入参数之一来做到这一点。然而,这确实增加了属性和它的目标方法之间的紧密耦合,这很不正常。

我可以重构数据层以确保任何嵌套调用(对同一连接)都是非嵌套的和顺序的(确保在使用SQL Server 2008和事务范围时不会升级为分布式事务)。

另一种选择可能是连接工厂,它提供连接但让我的业务层与底层连接类型无关。IDBConnection可以做到这一点。其他一些想法是子类化 TransactionScope(通过向其添加特定的连接功能,在“re”-useless elewhere 旁边),一个全局/静态数据连接对象,不赞成或只是简单地穿过数据连接我想在事务中使用的方法中共享对象。

所有这一切背后的基本原理是,我想要一种干净的方法来包装依赖于单个数据库连接的方法或方法集,而不会引起愤怒,MSDTC并且尽可能避免使用静态连接对象。

4

0 回答 0