Browse Source

Improve EFCoreRepositoryExtensions.

pull/5697/head
PMExtra 6 years ago
parent
commit
5151be6bdd
  1. 19
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs

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

@ -9,28 +9,27 @@ namespace Volo.Abp.Domain.Repositories
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