gpt4 book ai didi

c# - 以编程方式将 Entity Framework 数据库重置为 $InitialDatabase

转载 作者:太空狗 更新时间:2023-10-30 01:32:14 25 4
gpt4 key购买 nike

我使用迁移设置了 Entity Framework (6.1.1)。我知道我可以在程序包管理器控制台中运行以下命令来将数据库重置为完全清空:

Update-Database –TargetMigration: $InitialDatabase

但是我怎样才能从我的代码中做到这一点呢?

最佳答案

        var configuration = new MyDbConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
"Server=MyServer;Database=MyDatabase;Trusted_Connection=True;",
"System.Data.SqlClient");

var migrator = new DbMigrator(configuration);
migrator.Update("201606030938116_InitialDatabase");

如果您不知道您的迁移 ID,那么您可以这样做:

    migrator.GetDatabaseMigrations().First();

或者:

    migrator.GetLocalMigrations().First();

在您的 DbConfiguration 中,您必须允许自动删除:

public class MyDbConfiguration: DbMigrationsConfiguration<MyDbContext>
{
public MyDbConfiguration()
{
this.AutomaticMigrationsEnabled = true;
this.AutomaticMigrationDataLossAllowed = true;
}
}

来自@GTHvidsten 的更新:

您必须使用此命令而不是获取可用的迁移:migrator.Update(DbMigrator.InitialDatabase);。但是您还必须在 MyDbConfiguration 中设置 ContextKey 属性,以匹配在包管理器创建的配置对象中使用的属性。有了这两个,我的数据库就变空了。

关于c# - 以编程方式将 Entity Framework 数据库重置为 $InitialDatabase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com