TransactionScope在EF Core中的局限性(链接)
EF Core从2.1开始支持TransactionScope的使用,但是在EF Core中使用TransactionScope是有一些局限性的,原因是.NET Core是一个跨操作系统平台的框架,而TransactionScope的有一些特性只在Windows系统上支持,在Linux系统上不支持,例如:分布式事务处理协调器(distributed transaction coordinator)只存在于Windows系统上,所以在EF Core中(准确地说,是在.NET Core中)使用TransactionScope时,我们一定不能启动分布式事务,否则不管你的代码是在Windows系统下,还是在Linux系统下,都会抛出异常:
System.PlatformNotSupportedException: This platform does not support distributed transactions.
详情查看:Entity Framework Core - Use TransactionScope with Caution!
补充:
微软开发团队,在下面的帖子中提到了,计划在.NET 5中会支持分布式事务,所以让我们等待下一代.NET Core支持分布式事务,这样TransactionScope也就能在.NET Core中使用分布式事务了:
Implement distributed/promoted transactions in System.Transactions.