diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs index babe1da1f9..6408e3f0fa 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/DependencyInjection/AbpCommonDbContextRegistrationOptions.cs @@ -29,7 +29,7 @@ namespace Volo.Abp.DependencyInjection public Dictionary CustomRepositories { get; } - public List DefaultRepositories { get; } + public List SpecifiedDefaultRepositories { get; } public bool SpecifiedDefaultRepositoryTypes => DefaultRepositoryImplementationType != null && DefaultRepositoryImplementationTypeWithoutKey != null; @@ -40,7 +40,7 @@ namespace Volo.Abp.DependencyInjection DefaultRepositoryDbContextType = originalDbContextType; CustomRepositories = new Dictionary(); ReplacedDbContextTypes = new List(); - DefaultRepositories = new List(); + SpecifiedDefaultRepositories = new List(); } public IAbpCommonDbContextRegistrationOptionsBuilder ReplaceDbContext() @@ -92,13 +92,10 @@ namespace Volo.Abp.DependencyInjection public IAbpCommonDbContextRegistrationOptionsBuilder AddDefaultRepository(Type entityType) { - if (!typeof(IEntity).IsAssignableFrom(entityType)) - { - throw new AbpException($"Given entityType is not an entity: {entityType.AssemblyQualifiedName}. It must implement {typeof(IEntity<>).AssemblyQualifiedName}."); - } - - DefaultRepositories.AddIfNotContains(entityType); - + EntityHelper.CheckEntity(entityType); + + SpecifiedDefaultRepositories.AddIfNotContains(entityType); + return this; } diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs index 2f8dd28afc..4725496a29 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/EntityHelper.cs @@ -118,9 +118,19 @@ namespace Volo.Abp.Domain.Entities public static bool IsEntity([NotNull] Type type) { + Check.NotNull(type, nameof(type)); return typeof(IEntity).IsAssignableFrom(type); } + public static void CheckEntity([NotNull] Type type) + { + Check.NotNull(type, nameof(type)); + if (!IsEntity(type)) + { + throw new AbpException($"Given {nameof(type)} is not an entity: {type.AssemblyQualifiedName}. It must implement {typeof(IEntity).AssemblyQualifiedName}."); + } + } + public static bool IsEntityWithId([NotNull] Type type) { foreach (var interfaceType in type.GetInterfaces()) 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 ef686e7001..281d79a6f9 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 @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities; @@ -20,9 +19,7 @@ namespace Volo.Abp.Domain.Repositories public virtual void AddRepositories() { RegisterCustomRepositories(); - RegisterDefaultRepositories(); - RegisterSpecifiedDefaultRepositories(); } @@ -54,7 +51,7 @@ namespace Volo.Abp.Domain.Repositories protected virtual void RegisterSpecifiedDefaultRepositories() { - foreach (var entityType in Options.DefaultRepositories) + foreach (var entityType in Options.SpecifiedDefaultRepositories) { if (!Options.CustomRepositories.ContainsKey(entityType)) {