/// <summary> /// SQL Server specific extension method for Microsoft.EntityFrameworkCore.DbContextOptionsBuilder /// </summary> /// <param name="optionsBuilder">Database context options builder</param> /// <param name="services">Collection of service descriptors</param> public static void UseSqlServerWithLazyLoading(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services) { CepresConfig config = services.BuildServiceProvider().GetRequiredService <CepresConfig>(); DbContextOptionsBuilder dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies(); dbContextOptionsBuilder.UseSqlServer(config.DataConnectionString); }
public static void AddDbContext(this IServiceCollection services) { services.AddDbContext <Context>(optionsBuilder => { CepresConfig CepresConfig = services.BuildServiceProvider().GetRequiredService <CepresConfig>(); DbContextOptionsBuilder dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies(); dbContextOptionsBuilder.UseSqlServer(CepresConfig.DataConnectionString); }); }
public void Register(ContainerBuilder builder, CepresConfig config) { builder.Register(context => new Context(context.Resolve <DbContextOptions <Context> >())).As <IDbContext>().InstancePerLifetimeScope(); if (config.UserEF) { builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterType <IPatientMetaDataRepository>().AsSelf().InstancePerRequest(); } else { builder.RegisterGeneric(typeof(StaticSqlRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterType <PatientMetaDataRepository>().As <IPatientMetaDataRepository>().InstancePerLifetimeScope(); builder.RegisterType <PatientRepository>().As <IPatientRepository>().InstancePerLifetimeScope(); builder.RegisterType <RecordRepository>().As <IRecordRepository>().InstancePerLifetimeScope(); } builder.RegisterType <PatientService>().As <IPatientService>().InstancePerLifetimeScope(); builder.RegisterType <PatientMetaDataService>().As <IPatientMetaDataService>().InstancePerLifetimeScope(); builder.RegisterType <RecordService>().As <IRecordService>().InstancePerLifetimeScope(); builder.RegisterType <FileManagerProvider>().As <IFileManagerProvider>().InstancePerDependency(); builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); }
public static IServiceProvider ConfigureApplicationServices(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { //add Config configuration parameters CepresConfig config = services.ConfigureStartupConfig <CepresConfig>(configuration.GetSection("Cepres")); //add accessor to HttpContext services.AddHttpContextAccessor(); CommonHelper.DefaultFileProvider = new FileManagerProvider(hostingEnvironment); IMvcCoreBuilder mvcCoreBuilder = services.AddMvcCore(); //create, initialize and configure the engine IEngine engine = EngineContext.Create(); IServiceProvider serviceProvider = engine.ConfigureServices(services, configuration); SqlServerDataProvider.InitializeDatabase(config.DataConnectionString); return(serviceProvider); }