c# - 在类库中执行asp.net core EF迁移,无需硬编码连接字符串

标签 c# asp.net entity-framework asp.net-core environment-variables

我想在不同的环境中执行迁移。我正在使用 Entity Framework 和 ASP.NET Core。现在我有这个:

public class TemporaryDbContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create(DbContextFactoryOptions options)
    {
        var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
        builder.UseSqlServer("Data Source=.\\LOCALHOST;Initial Catalog=MyDB;Integrated Security=True;MultipleActiveResultSets=true");

        return new ApplicationDbContext(builder.Options);
    }
}

此代码位于 DAL 类库中,它将数据库交互与服务器代码分开。

执行迁移时使用它是可以的,但我不太喜欢这样做。

这里的问题是我使用本地数据库进行开发,但我们还有一个开发服务器和一个具有不同连接字符串的临时服务器。我无法做到的是找到一种不在该类中硬编码连接字符串的方法。

有没有办法为不同环境配置连接字符串并指示执行迁移时使用哪个连接字符串?

最佳答案

是的,您可以为此使用环境变量。

这就是为什么你有 appsettings.<EnvironmentName>.json

Configuration in ASP.NET Core
不错的微软文章关于Working with multiple environments


仅供引用
Environment.GetEnvironmentVariable

关于c# - 在类库中执行asp.net core EF迁移,无需硬编码连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43043235/

相关文章:

c# - Controller 生成很少的线程,尽管没有被询问

c# - ASP.NET c# 向数据集添加行

ASP.NET MVC 5 和 Bootstrap 3

sql-server - 在模型优先 Entity Framework 中使用 SmallDateType

c# - 业务验证逻辑代码异味

asp.net-mvc - ASP.NET MVC Entity Framework 关系绑定(bind)

c# - 为集合 UWP 中的每个项目生成一个组

c# - C# 中基于 HMAC 的一次性密码 (RFC 4226 - HOTP)

c# - 如何使用SelectTokens查询多个字段?

asp.net - IIS 6.0 在 URL 中的页面名称后面添加斜杠有何作用?