Architecture 在业务层实现事务是一种好的做法吗

Architecture 在业务层实现事务是一种好的做法吗,architecture,layered,Architecture,Layered,我们正在考虑在ASP.NET web应用程序中实现事务。它是一个三层结构。 我们正在从业务层调用Web服务,并计划通过设置TransactionOPtion属性在Web服务中实现事务 说到数据层,在数据层实现事务是一个好的选择,还是应该从业务层调用它。 如果我从业务层启动事务,我相信我们需要将事务上下文传递到数据层,而根据我的说法,这是没有意义的,因为我可以在Datalyer本身中启动事务。我没有与不同的数据库交谈,也没有来自BusinessLayer的多个方法调用。因此,我认为在这种情况下,我

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

说到数据层,在数据层实现事务是一个好的选择,还是应该从业务层调用它。 如果我从业务层启动事务,我相信我们需要将事务上下文传递到数据层,而根据我的说法,这是没有意义的,因为我可以在Datalyer本身中启动事务。我没有与不同的数据库交谈,也没有来自BusinessLayer的多个方法调用。因此,我认为在这种情况下,我们不需要在业务层进行交易。 你能核实/纠正我的理解吗

谢谢


Soni

如果您从一个对业务层的调用中有多个对数据层的调用,我相信您无法避免将事务范围提升到业务层


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

这不会使跟踪事务变得容易。
打开和关闭交易的责任将转移到业务层。

->层之间的耦合将远远超过您在调用Web服务时所期望的

它是每个业务调用一个数据层调用。我将在数据层中保留事务。谢谢