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()
{
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;

Loading…
Cancel
Save