我们正在将一个项目从.NET Framework迁移到.NET Core,该项目正在使用同一SQL服务器上的多个数据库。过去,我们将事务范围用于任何我们希望在发生错误时回滚的事务。
当事务涉及多个DB时,该事务将被提升为.NET Core不支持的分布式事务。
问题是,如果所有数据库实际上都在同一台服务器上,那么如果我要使用“跨数据库查询”,就像在此{{3}}的最后一部分中所建议的那样,我是否可以避免这种情况的发生? ?
“跨数据库查询”只是意味着运行原始SQL命令,例如:
using(TransactionScope scope = new TransactionScope())
{
var connection = new SqlConnection(connectionString);
connection.Open();
var SqlComm1 = new SqlCommand("Insert into TableA...", connection);
SqlComm1 .ExecuteNonQuery();
var SqlComm2 = new SqlCommand("Insert into [DB2].[dbo].[TableB]...";
SqlComm2 .ExecuteNonQuery();
.
.
}
如果没有,我可以得到一个实际上是什么的代码示例吗?
最后,在使用“跨数据库查询”时,我可以利用我实际的DBContexts中的任何东西吗?像连接,dbSet或其他任何东西,如果可以,怎么办?