Browse Source

Merge pull request #5697 from PMExtra/feature/improve-repository-extensions

Improve EFCoreRepositoryExtensions.
pull/5717/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
f0b7276350
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs

21
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs

@ -5,32 +5,29 @@ using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
namespace Volo.Abp.Domain.Repositories namespace Volo.Abp.Domain.Repositories
{ {
//TODO: Should work for any IRepository implementation
public static class EfCoreRepositoryExtensions public static class EfCoreRepositoryExtensions
{ {
public static DbContext GetDbContext<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository) public static DbContext GetDbContext<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity<TKey> where TEntity : class, IEntity
{ {
return repository.ToEfCoreRepository().DbContext; return repository.ToEfCoreRepository().DbContext;
} }
public static DbSet<TEntity> GetDbSet<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository) public static DbSet<TEntity> GetDbSet<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity<TKey> where TEntity : class, IEntity
{ {
return repository.ToEfCoreRepository().DbSet; return repository.ToEfCoreRepository().DbSet;
} }
public static IEfCoreRepository<TEntity, TKey> ToEfCoreRepository<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository) public static IEfCoreRepository<TEntity> ToEfCoreRepository<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity<TKey> where TEntity : class, IEntity
{ {
var efCoreRepository = repository as IEfCoreRepository<TEntity, TKey>; if (repository is IEfCoreRepository<TEntity> efCoreRepository)
if (efCoreRepository == null)
{ {
throw new ArgumentException("Given repository does not implement " + typeof(IEfCoreRepository<TEntity, TKey>).AssemblyQualifiedName, nameof(repository)); return efCoreRepository;
} }
return efCoreRepository; throw new ArgumentException("Given repository does not implement " + typeof(IEfCoreRepository<TEntity>).AssemblyQualifiedName, nameof(repository));
} }
} }
} }

Loading…
Cancel
Save