Browse Source

Update RepositoryRegistrarBase

pull/7673/head
liangshiwei 6 years ago
parent
commit
3b6a0ee16c
  1. 41
      framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryRegistrarBase.cs

41
framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryRegistrarBase.cs

@ -18,34 +18,48 @@ namespace Volo.Abp.Domain.Repositories
} }
public virtual void AddRepositories() public virtual void AddRepositories()
{
RegisterCustomRepositories();
RegisterDefaultRepositories();
RegisterSpecifiedDefaultRepositories();
}
protected virtual void RegisterCustomRepositories()
{ {
foreach (var customRepository in Options.CustomRepositories) foreach (var customRepository in Options.CustomRepositories)
{ {
Options.Services.AddDefaultRepository(customRepository.Key, customRepository.Value); Options.Services.AddDefaultRepository(customRepository.Key, customRepository.Value);
} }
}
if (Options.RegisterDefaultRepositories) protected virtual void RegisterDefaultRepositories()
{
if (!Options.RegisterDefaultRepositories)
{ {
RegisterDefaultRepositories(); return;
} }
foreach (var entityType in Options.DefaultRepositories) foreach (var entityType in GetEntityTypes(Options.OriginalDbContextType))
{ {
ShouldRegisterDefaultRepositoryFor(entityType); if (!ShouldRegisterDefaultRepositoryFor(entityType))
{
continue;
}
RegisterDefaultRepository(entityType); RegisterDefaultRepository(entityType);
} }
} }
protected virtual void RegisterDefaultRepositories() protected virtual void RegisterSpecifiedDefaultRepositories()
{ {
foreach (var entityType in GetEntityTypes(Options.OriginalDbContextType)) foreach (var entityType in Options.DefaultRepositories)
{ {
if (!ShouldRegisterDefaultRepositoryFor(entityType)) if (!Options.CustomRepositories.ContainsKey(entityType))
{ {
continue; RegisterDefaultRepository(entityType);
} }
RegisterDefaultRepository(entityType);
} }
} }
@ -75,7 +89,7 @@ namespace Volo.Abp.Domain.Repositories
protected virtual bool ShouldRegisterDefaultRepositoryFor(Type entityType) protected virtual bool ShouldRegisterDefaultRepositoryFor(Type entityType)
{ {
if (!Options.RegisterDefaultRepositories && !Options.DefaultRepositories.Any()) if (!Options.RegisterDefaultRepositories)
{ {
return false; return false;
} }
@ -85,11 +99,6 @@ namespace Volo.Abp.Domain.Repositories
return false; return false;
} }
if (Options.DefaultRepositories.Contains(entityType))
{
return true;
}
if (!Options.IncludeAllEntitiesForDefaultRepositories && !typeof(IAggregateRoot).IsAssignableFrom(entityType)) if (!Options.IncludeAllEntitiesForDefaultRepositories && !typeof(IAggregateRoot).IsAssignableFrom(entityType))
{ {
return false; return false;

Loading…
Cancel
Save