0

我有一个托管在多台服务器上的 Web 服务,随着流量的增加,竞争条件的出现。我们在 Azure 上使用实体框架和主机,我一直在研究使用TransactionScope或将逻辑移动到存储过程中编写查询并在那里执行事务。

TransactionScope我想知道使用或存储过程有什么区别?这个问题的最佳实践是什么?

4

2 回答 2

2

我强烈建议您不要在存储过程中实现事务。这会极大地限制您在创建工作单元(即事务)时的灵活性。由于您使用的是 EF,因此我鼓励您在业务层代码中管理事务。这样,您可以更灵活地定义和管理工作单元。

于 2013-10-01T20:09:37.377 回答
0

TransactionScope 允许在您的 EF 语句中进行事务。所以整个 linq 语句将回滚。而在 SPROCS 中拥有事务只会回滚在 sproc 中处理的任何内容。

因为您使用的是 EF,它允许您通过 Linq 与数据库进行交互,所以您也可以使用 TransactionScope IMO

于 2013-10-01T20:13:13.460 回答