【问题标题】:MVC C# Changing Database Structure Without Dropping DatabaseMVC C# 更改数据库结构而不删除数据库
【发布时间】:2016-04-20 17:50:44
【问题描述】:

如果我将属性添加到类或将整个类添加到数据库文件中的DbSet,实体框架应自动相应地添加表列。这工作正常,但我的问题是删除整个数据库并重新创建它。

我使用的远程服务器不允许我通过 Visual Studio 重新创建数据库,如果我添加/更改类/属性,我必须手动创建一个全新的数据库。此外,它不会让我删除对数据库的引用,即使它在技术上已被删除,所以我必须将新数据库重命名为另一个名称。

有什么方法可以轻松更改数据库的结构而无需删除和重新创建它?

【问题讨论】:

    标签: c# .net sql-server asp.net-mvc entity-framework


    【解决方案1】:

    是的,有办法。使用实体框架迁移。从包管理器控制台开始执行:

    Enable-Migrations
    

    这是 MSDN 上关于它的 article。仅当您使用实体框架代码优先方法时,您才可以选择使用迁移。

    关于 EF 迁移的最酷之处在于,您可以启用自动迁移选项。基本上,所有不会影响数据库中数据完整性或丢失的架构更改(例如添加列或新表)都可以自动推送,而无需显式实施迁移。

    【讨论】:

    • 感谢您的帮助!
    • @user3330265 不客气。祝迁移顺利!
    【解决方案2】:

    要求

    将实体框架安装到您的 Visual Studio 应用程序

    步骤

    1. 导入 CodeFirst 模型 (您似乎已经掌握了模型,只需确保它是 Code First 模型。)

    2. 在 VS 中使用包管理器控制台并运行:

      Add-Migration -IgnoreChanges

    3. 在您的模型对象上,进行任何所需的更改

    4. 重做不带 -IgnoreChanges 标志的 Add-Migration 命令

      Add-Migration

    5. 更新数据库

      Update-Database

    注意事项

    您可以添加选项和 C# 文件来控制您的迁移

    Update-Database -ProjectName Model -StartUpProjectName Model -Verbose -ConfigurationTypeName SpecialConfigurationForThisMigration

    SpecialConfigurationForThisMigration.cs

    internal sealed class Configuration : DbMigrationsConfiguration<Model.Model>
        {
            public Configuration()
            {
                AutomaticMigrationsEnabled = false;
                MigrationsDirectory = @"Customer\\Migrations";
            }
    
            protected override void Seed(Model.Model context)
            {
                //  This method will be called after migrating to the latest version.
    
                //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
                //  to avoid creating duplicate seed data. E.g.
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 2020-07-13
      • 2014-06-09
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多