Пример #1
0
        internal static ContainerBuilder AddDbContextInternal(this ContainerBuilder containerBuilder,
                                                              Type dbContextType,
                                                              Action <DbContextOptionsBuilder>?optionsBuilderAction,
                                                              ServiceLifetime?serviceLifetime,
                                                              IDbContextConfigurator?configurator)
        {
            serviceLifetime ??= ServiceLifetime.Transient;

            containerBuilder
            .Register(context =>
            {
                var applicationServiceProvider = context.Resolve <IServiceProvider>();
                var loggerFactory = context.Resolve <ILoggerFactory>();

                void Builder(DbContextOptionsBuilder builder)
                {
                    builder.UseLoggerFactory(loggerFactory);
                    builder.UseApplicationServiceProvider(applicationServiceProvider);
                    optionsBuilderAction?.Invoke(builder);
                }

                var actionConfigurator = new DbContextOptionsBuilderActionContextConfigurator(Builder);

                IDbContextConfigurator compilationConfigurator = configurator == null
                        ? actionConfigurator
                        : new DbContextConfiguratorCompilation(actionConfigurator, configurator);

                return(ActivatorUtilities.CreateInstance(
                           applicationServiceProvider, dbContextType, compilationConfigurator));
            })
            .PropertiesAutowired()
            .As(dbContextType)
            .WithLifetime(serviceLifetime.Value)
            .OwnedByLifetimeScope();

            return(containerBuilder);
        }
Пример #2
0
 public MyContext(DbOptions <MyContext> dbOptions, IDbContextConfigurator dbContextConfigurator)
     : base(dbOptions)
 {
     _dbContextConfigurator = dbContextConfigurator;
 }
Пример #3
0
 protected OpenModDbContext(IDbContextConfigurator configurator, IServiceProvider serviceProvider)
 {
     m_DbContextConfigurator = configurator;
     ServiceProvider         = serviceProvider;
 }
Пример #4
0
 public KitsDbContext(IDbContextConfigurator configurator, IServiceProvider serviceProvider) : base(configurator, serviceProvider)
 {
 }
Пример #5
0
 public static ContainerBuilder AddDbContext(this ContainerBuilder containerBuilder, Type dbContextType, Action <DbContextOptionsBuilder>?optionsBuilder, ServiceLifetime serviceLifetime, IDbContextConfigurator configurator)
 {
     return(AddDbContextInternal(containerBuilder, dbContextType, optionsBuilder, serviceLifetime, configurator));
 }
Пример #6
0
 public PlayerInfoLibDbContext(IDbContextConfigurator configurator, IServiceProvider serviceProvider) : base(configurator, serviceProvider)
 {
 }