public static DbContextOptions FixDistinctCount(this DbContextOptions options) { Type optionsBuilderType = typeof(DbContextOptionsBuilder <>).MakeGenericType(options.ContextType); var optionsBuilder = (DbContextOptionsBuilder)Activator.CreateInstance(optionsBuilderType); RelationalOptionsExtension relationalOptionsExtension = options.Extensions.OfType <RelationalOptionsExtension>().Single(); var serviceCollection = new ServiceCollection(); relationalOptionsExtension.ApplyServices(serviceCollection); ServiceDescriptor serviceDescriptor = serviceCollection.Single(sd => sd.ServiceType == typeof(IRelationalSqlTranslatingExpressionVisitorFactory)); Type fixFactoryType = typeof(FixRelationalSqlTranslatingExpressionVisitorFactory <>).MakeGenericType(serviceDescriptor.ImplementationType); Func <DbContextOptionsBuilder> func = optionsBuilder.ReplaceService <Object, Object>; MethodInfo replaceServiceMethod = func.Method.GetGenericMethodDefinition().MakeGenericMethod(typeof(IRelationalSqlTranslatingExpressionVisitorFactory), fixFactoryType); replaceServiceMethod.Invoke(optionsBuilder, null); DbContextOptions contextOptions = optionsBuilder.Options; foreach (IDbContextOptionsExtension extension in options.Extensions) { if (extension is CoreOptionsExtension coreOptionsExtension) { CoreOptionsExtension?newCoreOptions = null; if (coreOptionsExtension.ReplacedServices != null) { newCoreOptions = contextOptions.GetExtension <CoreOptionsExtension>(); foreach (KeyValuePair <Type, Type> replacedService in coreOptionsExtension.ReplacedServices) { newCoreOptions = newCoreOptions.WithReplacedService(replacedService.Key, replacedService.Value); } } if (coreOptionsExtension.LoggerFactory != null) { if (newCoreOptions == null) { newCoreOptions = contextOptions.GetExtension <CoreOptionsExtension>(); } newCoreOptions = newCoreOptions.WithLoggerFactory(coreOptionsExtension.LoggerFactory); } if (newCoreOptions != null) { contextOptions = contextOptions.WithExtension(newCoreOptions); } } else { var withExtensionFunc = (Func <IDbContextOptionsExtension, DbContextOptions>)contextOptions.WithExtension <IDbContextOptionsExtension>; var withExtension = withExtensionFunc.Method.GetGenericMethodDefinition().MakeGenericMethod(new[] { extension.GetType() }); contextOptions = (DbContextOptions)withExtension.Invoke(contextOptions, new[] { extension }); } } return(contextOptions); }
protected override void OnConfiguring(DbContextOptionsBuilder builder) { if (IsAppRunning()) { builder.UseNpgsql(new ApplicationSettings().ConnectionString()); } else { var inMemoryOptions = _options.GetExtension <InMemoryOptionsExtension>(); builder.UseInMemoryDatabase(databaseName: inMemoryOptions.StoreName); } }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); var sqlServerOptions = options.GetExtension <SqlServerOptionsExtension>(); optionsBuilder.UseSqlServer(sqlServerOptions.ConnectionString); }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); var sqlServerOptions = options.GetExtension <SqlServerOptionsExtension>(); optionsBuilder.UseSqlServer(sqlServerOptions.ConnectionString, b => b.MigrationsAssembly("GST.Data")); }
public PersistentMessagingDbContext([NotNull] DbContextOptions options) : base(options) { var serviceProvider = options.GetExtension <CoreOptionsExtension>().ApplicationServiceProvider; EntityMessagesExtractor = serviceProvider.GetService <IEntityMessagesExtractor>() ?? throw new InvalidOperationException( $"Service {nameof(IEntityMessagesExtractor)} wasn't registered in service collections; Please use AddRabbitaPersistent"); }
public BioEkoFitContext(DbContextOptions <BioEkoFitContext> options) : base(options) { _connectionString = options.GetExtension <NpgsqlOptionsExtension>()?.ConnectionString; if (string.IsNullOrEmpty(_connectionString)) { throw new ArgumentNullException(nameof(options)); } }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (_options?.GetExtension <SqliteOptionsExtension>() == null) { optionsBuilder.UseSqlite("Data Source=ChecklistBot.db"); } base.OnConfiguring(optionsBuilder); }
public static T GetService <T>(this DbContextOptions options) { Ensure.NotNull(options, nameof(options)); var serviceProvider = options.GetExtension <CoreOptionsExtension>().ApplicationServiceProvider; return((T)serviceProvider?.GetService(typeof(T))); }
public static T GetService <T>(this DbContextOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } var serviceProvider = options.GetExtension <CoreOptionsExtension>().ApplicationServiceProvider; return((T)serviceProvider?.GetService(typeof(T))); }
public DbContext(DbContextOptions <DbContext> options) : base(options) { try { connectionString = options.GetExtension <SqlServerOptionsExtension>().ConnectionString; } catch (Exception) { connectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=\"D:\\New folder\\Visual Studio 2019\\projects\\EncryptedLegder\\EncryptedLedgerExample\\Database.mdf\";Integrated Security=True"; } OnCreated(); }
public BlogDbContext(DbContextOptions <BlogDbContext> options) : base(new DbContextOptionsBuilder(options).Options) { var ext = options.GetExtension <CoreOptionsExtension>(); _provider = ext.ApplicationServiceProvider; }
public DbConnection(DbContextOptions <DbConnection> options) : base(options) { ConnectionString = options.GetExtension <SqlServerOptionsExtension>().ConnectionString; }
public curlingContext(DbContextOptions <curlingContext> options) { _connectionString = options?.GetExtension <SqlServerOptionsExtension>()?.ConnectionString; }