public SqlServerDbProvider(IServiceProvider sp, DbServerOptions dbServerOptions) { var dbContextOptionsBuilder = new DbContextOptionsBuilder(); dbContextOptionsBuilder.EnableDetailedErrors(dbServerOptions.EnableDetailedErrors); dbContextOptionsBuilder.EnableSensitiveDataLogging(dbServerOptions.EnableSensitiveDataLogging); dbContextOptionsBuilder.UseSqlServer( dbServerOptions.ConnectionString, c => { c.EnableRetryOnFailure(); if (dbServerOptions.MaxBatchSize > 0) { c.MaxBatchSize(dbServerOptions.MaxBatchSize); } c.MigrationsAssembly(dbServerOptions.MigrationAssemblyName); }); _sqlContext = (DbContext)ActivatorUtilities .CreateInstance(sp, Type.GetType(dbServerOptions.DbContextType) ?? throw new InvalidOperationException(), dbContextOptionsBuilder.Options); //_sqlContext.Database.EnsureCreated(); _sqlContext.Database.Migrate(); }
public async Task TestConnectionStringWithoutKeyVaultAndProtocol() { var keyVaultReaderMock = new Mock <IKeyVaultReader>(); keyVaultReaderMock.Setup(framework => framework.IsAvailable).Returns(false); var dbServerOptions = new DbServerOptions { Server = "s", Database = "d", DbPassword = "******" }; var optionsMock = new Mock <IOptions <DbServerOptions> >(); optionsMock.Setup(framework => framework.Value).Returns(dbServerOptions); var da = new DataAccess(keyVaultReaderMock.Object, optionsMock.Object); Assert.AreEqual("Data Source=s;Initial Catalog=d;User ID=demo;Password=p", await da.GetConnectionString()); }
public async Task TestConnectionStringWithKeyVaultAndProtocol() { var keyVaultReaderMock = new Mock <IKeyVaultReader>(); keyVaultReaderMock.Setup(framework => framework.IsAvailable).Returns(true); keyVaultReaderMock.Setup(framework => framework.GetSecretAsync(It.IsAny <string>())).Returns(Task.FromResult("p")); var dbServerOptions = new DbServerOptions { Server = "s", Database = "d", Protocol = "tcp" }; var optionsMock = new Mock <IOptions <DbServerOptions> >(); optionsMock.Setup(framework => framework.Value).Returns(dbServerOptions); var da = new DataAccess(keyVaultReaderMock.Object, optionsMock.Object); Assert.AreEqual("Data Source=tcp:s,1433;Initial Catalog=d;User ID=demo;Password=p", await da.GetConnectionString()); }