EFCore分表实现( 二 )

跨上下文使用事务这里需要主要的是,跨上下文使用事务必须使用同一个连接,所以optionsBuilder.UseSqlServer(connection);这里的写法改变一下,使用同一连接
DbContextOptionsBuilder<DbContextBase> optionsBuilder = new DbContextOptionsBuilder<DbContextBase>();IDbConnection connection = new SqlConnection("connStr");optionsBuilder.UseSqlServer(connection);var options =optionsBuilder.Options;using (var dbContext = new DbContextBase("202209", options)){using (vartransaction =await dbContext.Database.BeginTransactionAsync()){using (var dbContext2 = new DbContextBase("202210", options)){await dbContext2.Database.UseTransactionAsync(transaction);//TODO....transaction.Commit();}}}总结EFCore分表的实现大致全是这样 , 没有什么区别 。可以参考一些开源的框架,对现有的系统进行适当的调整,毕竟别人写的并不一定适合你 。希望这篇文章可以帮到你 。

推荐阅读