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
{
//TODO: Should work for any IRepository implementation
public static class EfCoreRepositoryExtensions
{
public static DbContext GetDbContext<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository)
where TEntity : class, IEntity<TKey>
public static DbContext GetDbContext<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity
{
return repository.ToEfCoreRepository().DbContext;
}
public static DbSet<TEntity> GetDbSet<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository)
where TEntity : class, IEntity<TKey>
public static DbSet<TEntity> GetDbSet<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity
{
return repository.ToEfCoreRepository().DbSet;
}
public static IEfCoreRepository<TEntity, TKey> ToEfCoreRepository<TEntity, TKey>(this IReadOnlyBasicRepository<TEntity, TKey> repository)
where TEntity : class, IEntity<TKey>
public static IEfCoreRepository<TEntity> ToEfCoreRepository<TEntity>(this IReadOnlyBasicRepository<TEntity> repository)
where TEntity : class, IEntity
{
var efCoreRepository = repository as IEfCoreRepository<TEntity, TKey>;
if (efCoreRepository == null)
if (repository is IEfCoreRepository<TEntity> efCoreRepository)
{
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