2015-09-02 114 views
0

VisualStudio和NuGet的新手,所以我正在尋找一些指令。NuGet更新數據庫不在Visual Studio中拉動新記錄

我正在使用TFS和使用NuGet獲取此項目數據庫的更新的團隊項目。 我的團隊成員之一添加了一個屬性,添加了一列到我們的數據庫之一,然後還向該數據庫添加了一條新記錄。然後他爲此創建了一個新的遷移。

我正在嘗試將其更新爲其他VisualStudio設置。 從我的研究到目前爲止,我在NuGet包管理器中運行了命令Update-Database。這更新了數據庫的結構並引入了新的專欄,但未能引入新的記錄。

我們嘗試過Update-Database -force,並且沒有回來。

我試過尋找一個解決方案,但我很難找到關於在數據庫中遷移數據的信息。

有沒有人有任何建議,我可以如何輕鬆地進行這方面的許多未來的更新。

+0

您可以包括遷移代碼嗎? –

回答

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

謝謝!我們已經決定不在這個當前項目的範圍之內,最重要的是數據庫的結構。 –

相關問題