From 1f758729395c71b1ec35ec81a212149753d2d0eb Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 18 Nov 2021 11:21:17 +0800 Subject: [PATCH] Move inside the `CreateDbContextWithTransaction` method. --- .../MongoDB/UnitOfWorkMongoDbContextProvider.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs index a8743c6e05..aee01caeb0 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs @@ -130,7 +130,7 @@ namespace Volo.Abp.Uow.MongoDB var client = CreateMongoClient(mongoUrl); var database = client.GetDatabase(databaseName); - if (unitOfWork.Options.IsTransactional && IsSupportedTransactions(client)) + if (unitOfWork.Options.IsTransactional) { return CreateDbContextWithTransaction(unitOfWork, mongoUrl, client, database); } @@ -150,7 +150,7 @@ namespace Volo.Abp.Uow.MongoDB var client = CreateMongoClient(mongoUrl); var database = client.GetDatabase(databaseName); - if (unitOfWork.Options.IsTransactional && IsSupportedTransactions(client)) + if (unitOfWork.Options.IsTransactional) { return await CreateDbContextWithTransactionAsync( unitOfWork, @@ -187,6 +187,12 @@ namespace Volo.Abp.Uow.MongoDB session.AdvanceOperationTime(new BsonTimestamp(unitOfWork.Options.Timeout.Value)); } + if (!IsSupportedTransactions(client)) + { + dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, null); + return dbContext; + } + session.StartTransaction(); unitOfWork.AddTransactionApi( @@ -227,6 +233,12 @@ namespace Volo.Abp.Uow.MongoDB session.AdvanceOperationTime(new BsonTimestamp(unitOfWork.Options.Timeout.Value)); } + if (!IsSupportedTransactions(client)) + { + dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, null); + return dbContext; + } + session.StartTransaction(); unitOfWork.AddTransactionApi(