Browse Source

EntityOptions to AbpEntityOptions

pull/1919/head
Yunus Emre Kalkan 7 years ago
parent
commit
8503f9b6ac
  1. 14
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs
  2. 8
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpDbContextRegistrationOptions.cs
  3. 18
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpEntityOptions.cs
  4. 2
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/IAbpDbContextRegistrationOptionsBuilder.cs
  5. 2
      templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameModelBuilderConfigurationOptions.cs

14
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs

@ -23,20 +23,20 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore
protected virtual TDbContext DbContext => _dbContextProvider.GetDbContext();
protected virtual EntityOptions<TEntity> EntityOptions => _entityOptionsLazy.Value;
protected virtual AbpEntityOptions<TEntity> AbpEntityOptions => _entityOptionsLazy.Value;
private readonly IDbContextProvider<TDbContext> _dbContextProvider;
private readonly Lazy<EntityOptions<TEntity>> _entityOptionsLazy;
private readonly Lazy<AbpEntityOptions<TEntity>> _entityOptionsLazy;
public EfCoreRepository(IDbContextProvider<TDbContext> dbContextProvider)
{
_dbContextProvider = dbContextProvider;
_entityOptionsLazy = new Lazy<EntityOptions<TEntity>>(
_entityOptionsLazy = new Lazy<AbpEntityOptions<TEntity>>(
() => ServiceProvider
.GetRequiredService<IOptions<EntityOptions>>()
.GetRequiredService<IOptions<AbpEntityOptions>>()
.Value
.GetOrNull<TEntity>() ?? EntityOptions<TEntity>.Empty
.GetOrNull<TEntity>() ?? AbpEntityOptions<TEntity>.Empty
);
}
@ -194,12 +194,12 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore
public override IQueryable<TEntity> WithDetails()
{
if (EntityOptions.DefaultWithDetailsFunc == null)
if (AbpEntityOptions.DefaultWithDetailsFunc == null)
{
return base.WithDetails();
}
return EntityOptions.DefaultWithDetailsFunc(GetQueryable());
return AbpEntityOptions.DefaultWithDetailsFunc(GetQueryable());
}
public override IQueryable<TEntity> WithDetails(params Expression<Func<TEntity, object>>[] propertySelectors)

8
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpDbContextRegistrationOptions.cs

@ -8,17 +8,17 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
{
public class AbpDbContextRegistrationOptions : AbpCommonDbContextRegistrationOptions, IAbpDbContextRegistrationOptionsBuilder
{
public Dictionary<Type, object> EntityOptions { get; }
public Dictionary<Type, object> AbpEntityOptions { get; }
public AbpDbContextRegistrationOptions(Type originalDbContextType, IServiceCollection services)
: base(originalDbContextType, services)
{
EntityOptions = new Dictionary<Type, object>();
AbpEntityOptions = new Dictionary<Type, object>();
}
public void Entity<TEntity>(Action<EntityOptions<TEntity>> optionsAction) where TEntity : IEntity
public void Entity<TEntity>(Action<AbpEntityOptions<TEntity>> optionsAction) where TEntity : IEntity
{
Services.Configure<EntityOptions>(options =>
Services.Configure<AbpEntityOptions>(options =>
{
options.Entity(optionsAction);
});

18
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/EntityOptions.cs → framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/AbpEntityOptions.cs

@ -6,30 +6,30 @@ using Volo.Abp.Domain.Entities;
namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
{
public class EntityOptions<TEntity>
public class AbpEntityOptions<TEntity>
where TEntity : IEntity
{
public static EntityOptions<TEntity> Empty { get; } = new EntityOptions<TEntity>();
public static AbpEntityOptions<TEntity> Empty { get; } = new AbpEntityOptions<TEntity>();
public Func<IQueryable<TEntity>, IQueryable<TEntity>> DefaultWithDetailsFunc { get; set; }
}
public class EntityOptions
public class AbpEntityOptions
{
private readonly IDictionary<Type, object> _options;
public EntityOptions()
public AbpEntityOptions()
{
_options = new Dictionary<Type, object>();
}
public EntityOptions<TEntity> GetOrNull<TEntity>()
public AbpEntityOptions<TEntity> GetOrNull<TEntity>()
where TEntity : IEntity
{
return _options.GetOrDefault(typeof(TEntity)) as EntityOptions<TEntity>;
return _options.GetOrDefault(typeof(TEntity)) as AbpEntityOptions<TEntity>;
}
public void Entity<TEntity>([NotNull] Action<EntityOptions<TEntity>> optionsAction)
public void Entity<TEntity>([NotNull] Action<AbpEntityOptions<TEntity>> optionsAction)
where TEntity : IEntity
{
Check.NotNull(optionsAction, nameof(optionsAction));
@ -37,8 +37,8 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
optionsAction(
_options.GetOrAdd(
typeof(TEntity),
() => new EntityOptions<TEntity>()
) as EntityOptions<TEntity>
() => new AbpEntityOptions<TEntity>()
) as AbpEntityOptions<TEntity>
);
}
}

2
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DependencyInjection/IAbpDbContextRegistrationOptionsBuilder.cs

@ -7,7 +7,7 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
{
public interface IAbpDbContextRegistrationOptionsBuilder : IAbpCommonDbContextRegistrationOptionsBuilder
{
void Entity<TEntity>([NotNull] Action<EntityOptions<TEntity>> optionsAction)
void Entity<TEntity>([NotNull] Action<AbpEntityOptions<TEntity>> optionsAction)
where TEntity : IEntity;
}
}

2
templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameModelBuilderConfigurationOptions.cs

@ -3,7 +3,7 @@ using Volo.Abp.EntityFrameworkCore.Modeling;
namespace MyCompanyName.MyProjectName.EntityFrameworkCore
{
public class MyProjectNameModelBuilderConfigurationOptions : ModelBuilderConfigurationOptions
public class MyProjectNameModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions
{
public MyProjectNameModelBuilderConfigurationOptions(
[NotNull] string tablePrefix = "",

Loading…
Cancel
Save