/// <summary>
        /// Adds database context as transient pool. Pool options are default.
        /// </summary>
        public static IServiceContainer AddDataContextTransientPool <TContext>(this IServiceContainer services,
                                                                               Action <DbContextOptionsBuilder <TContext> > contextOptions)
            where TContext : DbContext
        {
            DbContextOptionsBuilder <TContext> builder = new DbContextOptionsBuilder <TContext>();

            contextOptions(builder);

            AddContextOptions(services, builder.Options);
            services.AddTransientPool <TContext, TContext>();

            return(services);
        }
예제 #2
0
        /// <summary>
        /// Adds database context as transient pool.
        /// Pool options will be decided in method specified in 3rd parameter.
        /// In last parameter will be called after each instance is created.
        /// </summary>
        public static IServiceContainer AddDataContextTransientPool <TContext>(this IServiceContainer services,
                                                                               Action <DbContextOptionsBuilder <TContext> > contextOptions,
                                                                               Action <ServicePoolOptions> poolOptions,
                                                                               Action <TContext> afterInstanceCreated)
            where TContext : DbContext
        {
            DbContextOptionsBuilder <TContext> builder = new DbContextOptionsBuilder <TContext>();

            contextOptions(builder);

            services.AddSingleton(builder.Options);
            services.AddTransientPool <TContext, TContext>(poolOptions, afterInstanceCreated);

            return(services);
        }