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 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 IDbContextProvider<TDbContext> _dbContextProvider;
private readonly Lazy<EntityOptions<TEntity>> _entityOptionsLazy; private readonly Lazy<AbpEntityOptions<TEntity>> _entityOptionsLazy;
public EfCoreRepository(IDbContextProvider<TDbContext> dbContextProvider) public EfCoreRepository(IDbContextProvider<TDbContext> dbContextProvider)
{ {
_dbContextProvider = dbContextProvider; _dbContextProvider = dbContextProvider;
_entityOptionsLazy = new Lazy<EntityOptions<TEntity>>( _entityOptionsLazy = new Lazy<AbpEntityOptions<TEntity>>(
() => ServiceProvider () => ServiceProvider
.GetRequiredService<IOptions<EntityOptions>>() .GetRequiredService<IOptions<AbpEntityOptions>>()
.Value .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() public override IQueryable<TEntity> WithDetails()
{ {
if (EntityOptions.DefaultWithDetailsFunc == null) if (AbpEntityOptions.DefaultWithDetailsFunc == null)
{ {
return base.WithDetails(); return base.WithDetails();
} }
return EntityOptions.DefaultWithDetailsFunc(GetQueryable()); return AbpEntityOptions.DefaultWithDetailsFunc(GetQueryable());
} }
public override IQueryable<TEntity> WithDetails(params Expression<Func<TEntity, object>>[] propertySelectors) 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 class AbpDbContextRegistrationOptions : AbpCommonDbContextRegistrationOptions, IAbpDbContextRegistrationOptionsBuilder
{ {
public Dictionary<Type, object> EntityOptions { get; } public Dictionary<Type, object> AbpEntityOptions { get; }
public AbpDbContextRegistrationOptions(Type originalDbContextType, IServiceCollection services) public AbpDbContextRegistrationOptions(Type originalDbContextType, IServiceCollection services)
: base(originalDbContextType, 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); 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 namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
{ {
public class EntityOptions<TEntity> public class AbpEntityOptions<TEntity>
where TEntity : IEntity 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 Func<IQueryable<TEntity>, IQueryable<TEntity>> DefaultWithDetailsFunc { get; set; }
} }
public class EntityOptions public class AbpEntityOptions
{ {
private readonly IDictionary<Type, object> _options; private readonly IDictionary<Type, object> _options;
public EntityOptions() public AbpEntityOptions()
{ {
_options = new Dictionary<Type, object>(); _options = new Dictionary<Type, object>();
} }
public EntityOptions<TEntity> GetOrNull<TEntity>() public AbpEntityOptions<TEntity> GetOrNull<TEntity>()
where TEntity : IEntity 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 where TEntity : IEntity
{ {
Check.NotNull(optionsAction, nameof(optionsAction)); Check.NotNull(optionsAction, nameof(optionsAction));
@ -37,8 +37,8 @@ namespace Volo.Abp.EntityFrameworkCore.DependencyInjection
optionsAction( optionsAction(
_options.GetOrAdd( _options.GetOrAdd(
typeof(TEntity), typeof(TEntity),
() => new EntityOptions<TEntity>() () => new AbpEntityOptions<TEntity>()
) as EntityOptions<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 public interface IAbpDbContextRegistrationOptionsBuilder : IAbpCommonDbContextRegistrationOptionsBuilder
{ {
void Entity<TEntity>([NotNull] Action<EntityOptions<TEntity>> optionsAction) void Entity<TEntity>([NotNull] Action<AbpEntityOptions<TEntity>> optionsAction)
where TEntity : IEntity; 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 namespace MyCompanyName.MyProjectName.EntityFrameworkCore
{ {
public class MyProjectNameModelBuilderConfigurationOptions : ModelBuilderConfigurationOptions public class MyProjectNameModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions
{ {
public MyProjectNameModelBuilderConfigurationOptions( public MyProjectNameModelBuilderConfigurationOptions(
[NotNull] string tablePrefix = "", [NotNull] string tablePrefix = "",

Loading…
Cancel
Save