Browse Source

Mongodb module enhancements.

pull/272/head
Halil İbrahim Kalkan 9 years ago
parent
commit
167a99cf81
  1. 4
      src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs
  2. 6
      src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbContext.cs
  3. 2
      src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs
  4. 11
      src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs
  5. 2
      src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs
  6. 2
      src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs
  7. 2
      src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs

4
src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs

@ -10,7 +10,7 @@ using Volo.Abp.MongoDB;
namespace Volo.Abp.Domain.Repositories.MongoDB namespace Volo.Abp.Domain.Repositories.MongoDB
{ {
public class MongoDbRepository<TMongoDbContext, TEntity> : RepositoryBase<TEntity>, IMongoDbRepository<TEntity> public class MongoDbRepository<TMongoDbContext, TEntity> : RepositoryBase<TEntity>, IMongoDbRepository<TEntity>
where TMongoDbContext : AbpMongoDbContext where TMongoDbContext : IAbpMongoDbContext
where TEntity : class, IEntity where TEntity : class, IEntity
{ {
public virtual string CollectionName => DatabaseProvider.DbContext.GetCollectionName<TEntity>(); public virtual string CollectionName => DatabaseProvider.DbContext.GetCollectionName<TEntity>();
@ -82,7 +82,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB
} }
public class MongoDbRepository<TMongoDbContext, TEntity, TKey> : MongoDbRepository<TMongoDbContext, TEntity>, IMongoDbRepository<TEntity, TKey> public class MongoDbRepository<TMongoDbContext, TEntity, TKey> : MongoDbRepository<TMongoDbContext, TEntity>, IMongoDbRepository<TEntity, TKey>
where TMongoDbContext : AbpMongoDbContext where TMongoDbContext : IAbpMongoDbContext
where TEntity : class, IEntity<TKey> where TEntity : class, IEntity<TKey>
{ {
public MongoDbRepository(IMongoDatabaseProvider<TMongoDbContext> databaseProvider) public MongoDbRepository(IMongoDatabaseProvider<TMongoDbContext> databaseProvider)

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

@ -4,7 +4,7 @@ using System.Linq;
namespace Volo.Abp.MongoDB namespace Volo.Abp.MongoDB
{ {
public abstract class AbpMongoDbContext public abstract class AbpMongoDbContext : IAbpMongoDbContext
{ {
private static readonly MongoEntityMapping[] EmptyTypeList = new MongoEntityMapping[0]; private static readonly MongoEntityMapping[] EmptyTypeList = new MongoEntityMapping[0];
@ -23,12 +23,12 @@ namespace Volo.Abp.MongoDB
return EmptyTypeList; return EmptyTypeList;
} }
public string GetCollectionName<T>() public virtual string GetCollectionName<T>()
{ {
return GetMapping<T>().CollectionName; return GetMapping<T>().CollectionName;
} }
private MongoEntityMapping GetMapping<T>() protected virtual MongoEntityMapping GetMapping<T>()
{ {
var mapping = _mappingsByType.Value.GetOrDefault(typeof(T)); var mapping = _mappingsByType.Value.GetOrDefault(typeof(T));
if (mapping == null) if (mapping == null)

2
src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/MongoDbRepositoryRegistrar.cs

@ -15,7 +15,7 @@ namespace Volo.Abp.MongoDB.DependencyInjection
protected override IEnumerable<Type> GetEntityTypes(Type dbContextType) protected override IEnumerable<Type> GetEntityTypes(Type dbContextType)
{ {
var mongoDbContext = (AbpMongoDbContext)Activator.CreateInstance(dbContextType); var mongoDbContext = (IAbpMongoDbContext)Activator.CreateInstance(dbContextType);
return mongoDbContext.GetMappings().Select(m => m.EntityType); return mongoDbContext.GetMappings().Select(m => m.EntityType);
} }

11
src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IAbpMongoDbContext.cs

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace Volo.Abp.MongoDB
{
public interface IAbpMongoDbContext
{
IReadOnlyList<MongoEntityMapping> GetMappings();
string GetCollectionName<T>();
}
}

2
src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/IMongoDatabaseProvider.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.MongoDB namespace Volo.Abp.MongoDB
{ {
public interface IMongoDatabaseProvider<TMongoDbContext> public interface IMongoDatabaseProvider<TMongoDbContext>
where TMongoDbContext : AbpMongoDbContext where TMongoDbContext : IAbpMongoDbContext
{ {
TMongoDbContext DbContext { get; } TMongoDbContext DbContext { get; }

2
src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/MongoDbDatabaseApi.cs

@ -2,7 +2,7 @@
namespace Volo.Abp.Uow.MongoDB namespace Volo.Abp.Uow.MongoDB
{ {
public class MongoDbDatabaseApi: IDatabaseApi public class MongoDbDatabaseApi : IDatabaseApi
{ {
public IMongoDatabase Database { get; } public IMongoDatabase Database { get; }

2
src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDatabaseProvider.cs

@ -5,7 +5,7 @@ using Volo.Abp.MongoDB;
namespace Volo.Abp.Uow.MongoDB namespace Volo.Abp.Uow.MongoDB
{ {
public class UnitOfWorkMongoDatabaseProvider<TMongoDbContext> : IMongoDatabaseProvider<TMongoDbContext> public class UnitOfWorkMongoDatabaseProvider<TMongoDbContext> : IMongoDatabaseProvider<TMongoDbContext>
where TMongoDbContext : AbpMongoDbContext where TMongoDbContext : IAbpMongoDbContext
{ {
public TMongoDbContext DbContext { get; } public TMongoDbContext DbContext { get; }

Loading…
Cancel
Save