Beispiel #1
0
 public void RegisterServices(IServiceCollection services, IServiceRegistrationOptions serviceRegistrationOptions)
 {
     services
     .RegisterDbContextRepositories <BudgetPlannerDbContext>(
         configure =>
     {
         configure.ServiceLifetime  = ServiceLifetime.Transient;
         configure.UseDbContextPool = true;
         configure.DbContextServiceProviderOptions = (serviceProvider, setup) =>
         {
             var applicationSettings = serviceProvider.GetRequiredService <ApplicationSettings>();
             setup
             .EnableSensitiveDataLogging()
             .UseSqlServer(applicationSettings.DefaultConnectionString);
         };
         configure.DescribedEntityTypes = TypesDescriptor
                                          .Describe <Account>()
                                          .Describe <AccountClaim>()
                                          .Describe <Role>()
                                          .Describe <AccountRole>()
                                          .Describe <AccountAccess>()
                                          .Describe <Transaction>()
                                          .Describe <TransactionType>()
                                          .Describe <TransactionLedger>()
                                          .Describe <Claim>()
                                          .Describe <AccessType>()
                                          .Describe <RequestToken>()
                                          .Describe <Budget>();
     });
 }
 public void RegisterServices(IServiceCollection services, IServiceRegistrationOptions options)
 {
     services.RegisterDbContextRepositories <CrmDbContext>(config => {
         config.DbContextServiceProviderOptions = BuildDbContextServiceProviderOptions;
         config.ServiceLifetime      = ServiceLifetime.Transient;
         config.DescribedEntityTypes = TypesDescriptor.Describe <Customer>();
     });
 }
Beispiel #3
0
        public static IServiceCollection RegisterDbContextRepositories <TDbContext>(this IServiceCollection services,
                                                                                    ServiceLifetime serviceLifetime = ServiceLifetime.Scoped,
                                                                                    Action <DbContextOptionsBuilder> dbContextOptions = default,
                                                                                    params Type[] entityTypes)
            where TDbContext : DbContext
        {
            return(RegisterDbContextRepositories <TDbContext>(services, configuration => {
                foreach (var entityType in entityTypes)
                {
                    if (configuration.DescribedEntityTypes == null)
                    {
                        configuration.DescribedEntityTypes = TypesDescriptor.Describe(entityType);
                    }

                    configuration.DescribedEntityTypes.Describe(entityType);
                }

                configuration.ServiceLifetime = serviceLifetime;
                configuration.DbContextOptions = dbContextOptions;
                configuration
                .ServiceImplementationType = typeof(DefaultEntityFrameworkRepository <,>);
            }));
        }