From 3b6a0ee16c05ff728575be2e0979395e03bbc68b Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 9 Feb 2021 18:02:51 +0800 Subject: [PATCH] Update RepositoryRegistrarBase --- .../Repositories/RepositoryRegistrarBase.cs | 41 +++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryRegistrarBase.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryRegistrarBase.cs index 35129134c3..bf0be45bb6 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/RepositoryRegistrarBase.cs +++ b/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() + { + RegisterCustomRepositories(); + + RegisterDefaultRepositories(); + + RegisterSpecifiedDefaultRepositories(); + } + + protected virtual void RegisterCustomRepositories() { foreach (var customRepository in Options.CustomRepositories) { 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); } } - 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) { - if (!Options.RegisterDefaultRepositories && !Options.DefaultRepositories.Any()) + if (!Options.RegisterDefaultRepositories) { return false; } @@ -85,11 +99,6 @@ namespace Volo.Abp.Domain.Repositories return false; } - if (Options.DefaultRepositories.Contains(entityType)) - { - return true; - } - if (!Options.IncludeAllEntitiesForDefaultRepositories && !typeof(IAggregateRoot).IsAssignableFrom(entityType)) { return false;