使用新数据库的所有表结构创建新迁移

时间:2015-09-15 13:55:28

标签: c# asp.net-mvc entity-framework ef-migrations

我有一个我正在研究的项目。我编码的时候,我已经在我的机器上的Local SQL lite上创建了数据库。现在,我需要将其投入生产,我不能让迁移创建任何非空白的东西。

这是我的旧连接字符串:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=helpdesk;Integrated Security=True" providerName="System.Data.SqlClient" />

我把它变成了这个:

<add name="DefaultConnection" connectionString="Server=SQL50;Database=HelpDesk;Trusted_Connection=true;" providerName="System.Data.SqlClient" />

我试过这个帖子(Reset Entity-Framework Migrations):

  1. 删除项目中的迁移文件夹
  2. 删除数据库中的__MigrationHistory表(可能在系统表下) - 但是这个没有意义,因为这是一个新的数据库,因此还没有迁移。
  3. 每当我尝试创建一个新的迁移时,这就是我得到的:

    public partial class Initial : DbMigration
    {
        public override void Up()
        {
        }
    
        public override void Down()
        {
        }
    }
    

    我发现这个关于Initializers的链接正如Steve Greene Below(http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm

    所建议的那样

    它建议使用这行代码:

    Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());
    

    在主要方法中。但是,我没有主要方法或任何类似的方法。

1 个答案:

答案 0 :(得分:0)

如果我想从头开始,这就是我的工作。

  • 删除本地数据库。 - 你可以备份等

  • 从我的项目中删除迁移文件夹。(签入源代码 控制任何模型更改,这有时会导致问题)。

  • 为我的项目运行Enable-Migrations命令。 (这应该补充 迁移文件夹)。

  • 运行Add-Migration Initial。 (这应该 db init脚手架。

  • 运行Update-Database命令(或运行使用的应用程序 DBContext)。