mirror of https://github.com/abpframework/abp.git
6 changed files with 114 additions and 14 deletions
@ -0,0 +1,40 @@ |
|||
using System; |
|||
using MongoDB.Driver; |
|||
using Volo.Abp.Domain.Entities; |
|||
using Volo.Abp.Domain.Repositories.MongoDB; |
|||
|
|||
namespace Volo.Abp.Domain.Repositories |
|||
{ |
|||
public static class MongoDbCoreRepositoryExtensions |
|||
{ |
|||
public static IMongoDatabase GetDatabase<TEntity, TPrimaryKey>(this IRepository<TEntity, TPrimaryKey> repository) |
|||
where TEntity : class, IEntity<TPrimaryKey> |
|||
{ |
|||
return repository.ToMongoDbRepository().Database; |
|||
} |
|||
|
|||
public static IMongoCollection<TEntity> GetCollection<TEntity, TPrimaryKey>(this IRepository<TEntity, TPrimaryKey> repository) |
|||
where TEntity : class, IEntity<TPrimaryKey> |
|||
{ |
|||
return repository.ToMongoDbRepository().Collection; |
|||
} |
|||
|
|||
public static string GetCollectionName<TEntity, TPrimaryKey>(this IRepository<TEntity, TPrimaryKey> repository) |
|||
where TEntity : class, IEntity<TPrimaryKey> |
|||
{ |
|||
return repository.ToMongoDbRepository().CollectionName; |
|||
} |
|||
|
|||
public static IMongoDbRepository<TEntity, TPrimaryKey> ToMongoDbRepository<TEntity, TPrimaryKey>(this IRepository<TEntity, TPrimaryKey> repository) |
|||
where TEntity : class, IEntity<TPrimaryKey> |
|||
{ |
|||
var mongoDbRepository = repository as IMongoDbRepository<TEntity, TPrimaryKey>; |
|||
if (mongoDbRepository == null) |
|||
{ |
|||
throw new ArgumentException("Given repository does not implement " + typeof(IMongoDbRepository<TEntity, TPrimaryKey>).AssemblyQualifiedName, nameof(repository)); |
|||
} |
|||
|
|||
return mongoDbRepository; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue