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.