首页 > 解决方案 > 在实体框架中更新数据库

问题描述

我怎样才能使用SetInitializer只更新数据库?我不想删除并重新创建它,因为我只添加了一个列:

Database.SetInitializer<myDbContext>( /* Here */ );

标签: c#entity-framework

解决方案


基本上您需要使用DropCreateDatabaseIfModelChanges,因为您的模型类(实体类)已更改。

如果以上不满足您的要求,或者您想要使用上述初始化程序初始化数据库,您还可以创建自己的自定义初始化程序。

那应该是这样的:

public class YourCustomInitializer : DropCreateDatabaseIfModelChanges<YourDBContext>
{
    protected override void Seed(YourDBContext context)
    {
        // sample data to be written or updated to the DB
    }
}

值得一提的是,您可以简单地将新列添加到实体中,然后使用add-migration 和 update-database命令。您需要在 PackageManagerConsole 中运行这些命令。


推荐阅读