在业务层中实现事务是一种好习惯

时间:2011-09-12 12:10:18

标签: architecture layered

我们正在考虑在ASP.NET Web应用程序中实现事务。它是一个三层架构。 我们从业务层调用Web服务,并计划通过设置TransactionOPtion属性在Web服务中实现事务。

来到数据层,在数据层实现事务是一个很好的选择,还是应该从业务层调用它。 如果我从业务层启动事务,我相信我们需要将事务上下文传递给Datalayer,根据我的说法没有意义,因为我可以在Datalyer本身启动事务。我不是在谈论不同的数据库,也没有从BusinessLayer进行多次方法调用。所以我不认为我们需要在此上下文中的业务层中进行事务处理。 你可以验证/纠正我的理解吗?

由于

瑞里

2 个答案:

答案 0 :(得分:2)

如果您通过一次调用业务层对数据层进行多次调用,我认为您无法避免将事务范围提升到业务层。

如果您将自己限制为每个业务层调用一个数据层调用,那么您当然不需要业务层级事务,并且只能将它们保留在数据层上。

答案 1 :(得分:0)

跟踪交易不会变得容易 开启和关闭交易的责任将转移到业务层 - >层之间的耦合将远远超过您调用Web服务时的预期。