Browse Source

Add IMongoClient to the IAbpMongoDbContext.

Resolve #6036 resolve #4886
pull/6053/head
maliming 6 years ago
parent
commit
2ccb988538
  1. 6
      framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs
  2. 2
      framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs
  3. 6
      framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs

6
framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using MongoDB.Bson;
using MongoDB.Driver; using MongoDB.Driver;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
@ -9,6 +8,8 @@ namespace Volo.Abp.MongoDB
{ {
public IMongoModelSource ModelSource { get; set; } public IMongoModelSource ModelSource { get; set; }
public IMongoClient Client { get; private set; }
public IMongoDatabase Database { get; private set; } public IMongoDatabase Database { get; private set; }
public IClientSessionHandle SessionHandle { 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; Database = database;
Client = client;
SessionHandle = sessionHandle; SessionHandle = sessionHandle;
} }

2
framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs

@ -4,6 +4,8 @@ namespace Volo.Abp.MongoDB
{ {
public interface IAbpMongoDbContext public interface IAbpMongoDbContext
{ {
IMongoClient Client { get; }
IMongoDatabase Database { get; } IMongoDatabase Database { get; }
IMongoCollection<T> Collection<T>(); IMongoCollection<T> Collection<T>();

6
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<TMongoDbContext>(); var dbContext = unitOfWork.ServiceProvider.GetRequiredService<TMongoDbContext>();
dbContext.ToAbpMongoDbContext().InitializeDatabase(database, null); dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, null);
return dbContext; return dbContext;
} }
@ -90,11 +90,11 @@ namespace Volo.Abp.Uow.MongoDB
new MongoDbTransactionApi(session) new MongoDbTransactionApi(session)
); );
dbContext.ToAbpMongoDbContext().InitializeDatabase(database, session); dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, session);
} }
else else
{ {
dbContext.ToAbpMongoDbContext().InitializeDatabase(database, activeTransaction.SessionHandle); dbContext.ToAbpMongoDbContext().InitializeDatabase(database, client, activeTransaction.SessionHandle);
} }
return dbContext; return dbContext;

Loading…
Cancel
Save