为新数据库创建一个具有全表结构的新迁移
本文关键字:结构 新迁移 迁移 一个 创建 数据库 | 更新日期: 2023-09-27 18:12:46
我有一个项目,我正在工作。虽然我一直在编码它,我已经创建了本地SQL生活在我的机器上的数据库。现在,我需要将其投入生产,但是我无法让迁移创建任何非空白的内容。
这是我的旧连接字符串:
<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" />
我已经尝试过从这个线程(重置实体框架迁移):
- 删除项目中的迁移文件夹
- 删除数据库中的__MigrationHistory表(可能在系统表下)-但是这个没有意义,因为这是一个新数据库,因此没有迁移。
每当我尝试创建一个新的迁移时,我得到的结果是:
public partial class Initial : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
我找到了Steve Greene建议的关于初始化器的链接如下(http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm)
,它建议使用这行代码:
Database.SetInitializer(new DropCreateDatabaseAlways<BlogContext>());
在main方法中。但是,我没有main方法或任何类似的方法。
如果我想从头开始,我通常会这样做。
-
删除本地DB。-你可以做备份等
-
从项目中删除迁移文件夹。(签入源代码
-
为我的项目运行Enable-Migrations命令。(这应该加上迁移文件夹)。
-
运行Add-Migration Initial。(这应该
-
运行Update-Database命令(或运行使用DBContext)。