c# - 如何强制迁移使用客户端上下文的连接字符串触发迁移

标签 c# entity-framework entity-framework-migrations

应用程序使用 EF 6.1.2 连接到数据库。应用程序使用 EF 迁移功能自动升级数据库。

但是,迁移确实调用无参数构造函数,而不是使用触发迁移的客户端上下文使用的连接字符串。如何强制迁移(在 var z = wait y.ToListAsync(); 行上触发)使用提供给 clientContext 的连接字符串?

客户端上下文的连接字符串由用户提供(即它在 app.config 中或任何其他名称下不可用)。

代码

Database.SetInitializer(new MigrateDatabaseToLatestVersion<ClientContext, Configuration>());

var clientContext = new ClientContext(connectionString);

var y = clientContext.Set<TEntity>();
var z = await y.ToListAsync();

配置类

public sealed class Configuration : DbMigrationsConfiguration<ClientContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
    }
}

ClientContext 类

public class ClientContext : DbContext
{

    public ClientContext()
        : this(Properties.Settings.Default.OnlineConnectionString)
    {
    } 

    public ClientContext(string connectionString) : base(connectionString)
    {
    }
}

最佳答案

将 true 传递给构造函数(将 true 传递给构造函数表示迁移应该重用触发迁移的客户端上下文)。无需手动向初始化程序提供连接字符串。

Database.SetInitializer(new MigrateDatabaseToLatestVersion<ClientContext, Configuration>(true));

关于c# - 如何强制迁移使用客户端上下文的连接字符串触发迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898256/

相关文章:

c# - 将 Entity Framework 链接到新的 Sql 数据类型

linq - linq 为存储过程的两次不同执行返回相同的数据?

asp.net-mvc - ASP.NET MVC,使用EF 4时可以进行身份​​验证或自定义吗?

entity-framework - 从配置类编写 EF 迁移种子脚本

c# - DataAnnotation 和 Code First 使用 Identity 2.2.1 为 ApplicationUser 创建外键

c# - 如何在 C# 中使用其产品代码卸载 MSI

c# - 在指向整数的指针数组上动态设置值

c# - Java 和 C# 中的 Math "pow"返回的结果略有不同?

c# - ConditionalAttribute 和其他特殊类

sql - EF Code First回滚数据库表设计