c# - 在 EF 中手动调用 DbMigration.Up

标签 c# entity-framework

我希望能够手动迁移 Up() 方法。目前我正在尝试这样做,但调用包含 CreateTable 方法的方法不会创建表。我怀疑连接设置不正确。并且没有设置它的属性。

我也试过 DbMigrator,但它调用了一些内部 EF 迁移方法。

那么有人知道如何设置 DbMigration.Up 方法要使用的连接吗?

提前致谢!

最佳答案

我使用以下代码明确能够在 Application_Start 事件中升级我的数据库:

var config = new MyDatabaseMigrationsConfiguration();
var migrator = new System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator(new System.Data.Entity.Migrations.DbMigrator(config), new MyCommonMigrationsLogger());
if (migrator.GetPendingMigrations().Any())
{
  migrator.Update();
}

据我所知,这将使用我的 DatabaseContext 中的默认(命名)连接字符串来应用未决更改。

  • 如果你想明确的话,你可以在 migrator.Update() 中指定 TargetMigration
  • MyCommonMigrationsLogger 只是 System.Data.Entity.Migrations.Infrastructure.MigrationsLogger 的简单 Logging.Common 实现

关于c# - 在 EF 中手动调用 DbMigration.Up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18445004/

相关文章:

c# - 使用 CaSTLe Windsor 进行依赖注入(inject)的多态性

c# - 指定的包含路径无效

entity-framework - WCF 数据服务请求错误

entity-framework - Entity Framework 4.0 POCO 和多对多问题

c# - 我怎么知道哪个聊天在电报机器人上生成 "chat not found"异常?

c# - 字符串比较的奇怪之处

c# - 如何检查比较两个列表是否至少有一项不同?

c# - 实体核心映射实体类型与连接表

c# - ASP.NET Entity Framework Code First 环境间迁移过程

c# - 在 Visual Studio 中,有没有办法按用途对私有(private)方法进行排序?