使用Code First将新模型添加到现有模型

时间:2017-01-08 17:39:06

标签: visual-studio-2015 asp.net-core ef-code-first entity-framework-core

目前我达到以下目的。

问题:这是否是正确的方法,以保持现有表中的数据。我觉得我这样做是一种冗长的方式。这样做的任何建议或替代/正确的方法?

  1. DbSet<...>档案
  2. 中创建新实体(模型)和相应的myProjectContext.cs条目
  3. 从VS2015删除现有迁移,并从SQL Server Db
  4. 删除相应的__EFMigrationsHistory
  5. 运行PM> add-migration mytMigration -context myProjectContext
  6. 注释掉新生成的mytMigration.cs文件中的所有代码,但与新生成的实体(模型)相关的代码除外。
  7. 运行PM> update-database -context myProjectContext
  8. 在现有Db中创建新表(对应于新添加的实体)以及新的__EFMigrationsHistory表。所有现有表格中的数据仍然存在。

    更新

    我正在关注这个official ASP.NET tutorial并且 - 根据他们的建议 - 已经通过依赖注入注册了我们的上下文,如下所示:

    Startup.cs

    public void ConfigureServices(IServiceCollection services)
            {
                var connection = @"Server=myDevMachine\SQL2012Instance;Database=myDb;Trusted_Connection=True;";
                services.AddDbContext<ABCTestContext>(options => options.UseSqlServer(connection));
    ...
    ...
    }
    

1 个答案:

答案 0 :(得分:1)

您不应删除任何现有内容。你正在加入吗?

你应该做的步骤:

  1. 创建新实体
  2. 将DbSet添加到上下文
  3. 运行添加迁移 newMigrationName
  4. 运行update-database
  5. Add-Migration查看现有数据库和模型,并生成迁移以更新架构。

    运行Update-Database时,EF会检查迁移历史记录表并运行尚未执行的迁移。

相关问题