c# - 如何通过代码在运行时添加迁移

标签 c# model-view-controller .net-core

我在 rum 时间更改 Db-context 以代表其他数据库连接的条件,所以问题是如果数据库不存在,我们无法通过代码在运行时创建数据库。

public void ConfigureServices(IServiceCollection services)
        {  
           services.AddDbContext<TenantsDbContext>(options =>              options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")))

            services.AddDbContext<MultitenantDbContext>();           

            // for dependency.
            services.AddTransient<ITenantProvider, DatabaseTenantProvider>();
             .AddEntityFrameworkStores<MultitenantDbContext>()
             .AddDefaultTokenProviders();
}

并在运行时更改数据库连接。

public MultitenantDbContext(DbContextOptions<MultitenantDbContext> options,
                                    ITenantProvider tenantProvider) : base(options)
        {
            _tenantProvider = tenantProvider;         
            _connectionString = @"Server=Test\SQL2017;Database=" + _tenantProvider.GetTenantId() + ";User ID=sa;Password=123;";
        }

最佳答案

我想你可以 dbContext.Migrate(); 此外,您还可以使用 dbContext.EnsureCreated();。它将检查数据库是否存在,如果不存在则迁移。

关于c# - 如何通过代码在运行时添加迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57473926/

相关文章:

c# - 如何在C#中创建基于多命令结果组合的策略决策机制

c# - 如何优化此 Linq 查询以查找过去 24 小时内浏览次数最多的博客文章

javascript - 我们是否正在倒退使用 JavaScript MVC (MVVM) 框架,如 Backbone.js、Angular 等?

Java MVC, Controller 之间共享模型?

c# - 如何使用 WinAPI 快速逐像素处理图像?

c# - 嵌入式资源 JSON 到 JObject

javascript - 尝试使用 Angular ng-disabled 禁用按钮

.net-core - 如何仅使用 dotnet vstest 运行以前失败的测试

c# - 为什么 Tuple<int,int> 占用与 Tuple<ushort,ushort> 相同的内存量?

asp.net-core - aspnet 核心 2.0 dotnet 运行时出现警告