NuGet更新数据库不在Visual Studio中拉动新记录

问题描述:

VisualStudio和NuGet的新手,所以我正在寻找一些指令。NuGet更新数据库不在Visual Studio中拉动新记录

我正在使用TFS和使用NuGet获取此项目数据库的更新的团队项目。 我的团队成员之一添加了一个属性,添加了一列到我们的数据库之一,然后还向该数据库添加了一条新记录。然后他为此创建了一个新的迁移。

我正在尝试将其更新为其他VisualStudio设置。 从我的研究到目前为止,我在NuGet包管理器中运行了命令Update-Database。这更新了数据库的结构并引入了新的专栏,但未能引入新的记录。

我们尝试过Update-Database -force,并且没有回来。

我试过寻找一个解决方案,但我很难找到关于在数据库中迁移数据的信息。

有没有人有任何建议,我可以如何轻松地进行这方面的许多未来的更新。

+0

您可以包括迁移代码吗? –

首先,欢迎来到SO!

这样更新了数据库的结构和 引入新列但未能引入新记录。

当您创建迁移时,EF将自动添加结构更改,但它对数据不会执行相同操作。如果你仔细想一想,EF是无法知道你的数据库中已经添加,修改或删除了哪些记录,并且9次(10次)我们不希望这些数据在迁移脚本中。

如果你想包括与您的迁移,你有两个选择记录...

1.种子数据库

这种方法将在每个迁移

internal sealed class Configuration : DbMigrationsConfiguration<WebApplication15.DatabaseContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
    } 

    protected override void Seed(WebApplication15.DatabaseContext context) 
    { 
     // 
     // Add records into the database 
     // 

    } 
} 

被称为2.添加数据到迁移

public partial class Initial : DbMigration 
{ 
    public override void Up() 
    { 
     CreateTable(
      "dbo.People", 
      c => new 
       { 
        Id = c.Int(nullable: false, identity: true), 
       }) 
      .PrimaryKey(t => t.Id); 

     Sql("INSERT INTO People...."); 

    } 

    public override void Down() 
    { 
     DropTable("dbo.People"); 
    } 
} 

我们已经尝试过Update-Database -force并且没有任何东西。

force标志只是告诉EF迁移数据库,不管它是否会导致数据丢失(即丢弃一个充满记录的表!)。

希望这会有所帮助!

+0

谢谢!我们已经决定不在这个当前项目的范围之内,最重要的是数据库的结构。 –