From 2ccb988538ac1f280666a565229ebd766e1e0f16 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 4 Nov 2020 15:47:47 +0800 Subject: [PATCH] Add IMongoClient to the IAbpMongoDbContext. Resolve #6036 resolve #4886 --- .../Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs | 6 ++++-- .../Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs | 2 ++ .../Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs index e961fdf256..5e7eb84111 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using MongoDB.Bson; using MongoDB.Driver; using Volo.Abp.DependencyInjection; @@ -9,6 +8,8 @@ namespace Volo.Abp.MongoDB { public IMongoModelSource ModelSource { get; set; } + public IMongoClient Client { get; private set; } + public IMongoDatabase Database { get; private set; } public IClientSessionHandle SessionHandle { get; private set; } @@ -18,9 +19,10 @@ namespace Volo.Abp.MongoDB } - public virtual void InitializeDatabase(IMongoDatabase database, IClientSessionHandle sessionHandle) + public virtual void InitializeDatabase(IMongoDatabase database, IMongoClient client, IClientSessionHandle sessionHandle) { Database = database; + Client = client; SessionHandle = sessionHandle; } diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs index c4049e1389..008c4d5fef 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs @@ -4,6 +4,8 @@ namespace Volo.Abp.MongoDB { public interface IAbpMongoDbContext { + IMongoClient Client { get; } + IMongoDatabase Database { get; } IMongoCollection Collection(); 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 0d9969ee51..d3d8a419fb 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 @@ -59,7 +59,7 @@ namespace Volo.Abp.Uow.MongoDB } var dbContext = unitOfWork.ServiceProvider.GetRequiredService(); - dbContext.ToAbpMongoDbContext().InitializeDatabase(database, null); + dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, null); return dbContext; } @@ -90,11 +90,11 @@ namespace Volo.Abp.Uow.MongoDB new MongoDbTransactionApi(session) ); - dbContext.ToAbpMongoDbContext().InitializeDatabase(database, session); + dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, session); } else { - dbContext.ToAbpMongoDbContext().InitializeDatabase(database, activeTransaction.SessionHandle); + dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, activeTransaction.SessionHandle); } return dbContext;