dotnetcore/CAP

How to Introduce Multiple Database Providers?

syp10000 opened this issue · 1 comments

image
项目同时引用了这三个库
image
由于命名空间和参数一致问题,无法这么使用,不知道如何处理

虽然我认为你不应该这样做,但我无权干涉你。

BeginTransactionAsync 只是一个扩展方法你可以自行编写。

public static Task<IDbContextTransaction> BeginTransactionAsync(this DatabaseFacade database,
IsolationLevel isolationLevel, ICapPublisher publisher, bool autoCommit = false, CancellationToken cancellationToken = default)
{
var dbTransaction = database.BeginTransactionAsync(isolationLevel, cancellationToken).GetAwaiter().GetResult();
publisher.Transaction = ActivatorUtilities.CreateInstance<SqlServerCapTransaction>(publisher.ServiceProvider);
publisher.Transaction.DbTransaction = dbTransaction;
publisher.Transaction.AutoCommit = autoCommit;
return Task.FromResult<IDbContextTransaction>(new CapEFDbTransaction(publisher.Transaction));
}