C# 使用Dapper哪个事务更好:BEGIN TRAN还是TransactionScope?
我刚刚开始使用Dapper,我想知道哪种交易模式更好 编写SQL时,我更喜欢使用脚本中已有的事务:C# 使用Dapper哪个事务更好:BEGIN TRAN还是TransactionScope?,c#,tsql,transactions,dapper,C#,Tsql,Transactions,Dapper,我刚刚开始使用Dapper,我想知道哪种交易模式更好 编写SQL时,我更喜欢使用脚本中已有的事务: BEGIN TRAN -- insert, update etc. COMMIT 因为它更容易测试,但也存在使用.net事务的地方的问题,所以现在我不确定应该实际使用哪一个 这两种方法比另一种方法有什么缺点/优点吗?实际上,这与整洁无关。参考答案 TransactionScope或连接。BeginTransaction或“存储过程中的事务”决策超出了Dapper的范围。Dapper只是在AD
BEGIN TRAN
-- insert, update etc.
COMMIT
因为它更容易测试,但也存在使用.net事务的地方的问题,所以现在我不确定应该实际使用哪一个
这两种方法比另一种方法有什么缺点/优点吗?实际上,这与整洁无关。参考答案
TransactionScope
或连接。BeginTransaction
或“存储过程中的事务”决策超出了Dapper的范围。Dapper只是在ADO.NET的DBConnection
对象上公开了一些扩展方法,这些方法将查询的输出映射到对象。休息由你决定
TransactionScope
通常用于分布式事务;跨不同数据库的事务可能位于不同的系统上。这需要在操作系统和SQL Server上进行一些配置,如果没有这些配置,这将无法工作。如果您的所有查询都针对单个数据库实例,则不建议这样做。正如@ImrePühvel在评论中指出的那样:对于单个数据库,当您需要在不受您控制的事务中包含代码时,这可能非常有用。对于单个数据库,它也不需要特殊配置
connection.BeginTransaction
是ADO.NET语法,用于对单个数据库实现事务(在C#、VB.NET等中)。这不适用于多个数据库connection.BeginTransaction