簡體   English   中英

更新數據庫首先無法在代碼中工作

[英]update-database not working in Code first

我正在使用實體框架和Codefirst創建存儲過程。 正如我所言,我們應該在程序包管理器中執行一些步驟來創建SP。

1-啟用遷移

2-添加遷移MYclass

3-更新數據庫

Myclass(new created)我在UP()方法中編寫我的SP代碼以創建SP。 工作正常!! 但是,當我更改SP並再次運行update-database時,它不起作用,我需要執行另一個add-migration命令來創建新的MYclass2。 那正確嗎? 我的意思是每次我應該寫添加遷移?

這是我的代碼

  public override void Up()
        {
            Sql(@"Create procedure testSp 
                        as 
select std.Id as stdName, std.Name as MajorName, mj.Name from dbo.Students as std
inner join dbo.Majors as mj on std.Id = mj.Id
");
        }

        public override void Down()
        {
            Sql("drop procedure testSp");
        }

當我再次運行update-database時,結果是"No pending explicit migration"

即使我將SQL查詢更改為“ Alter procedure ....”,它也不起作用,也不會發生任何更改。 謝謝

EDITED

考慮這種情況,我想更改我的SP名稱(僅作為示例),因此我需要將查詢更改為“ Alter store procedure tespSP2 ...”或任何其他更改,是否應該再次運行add-migration? 還是應該更新數據庫?

在添加到_migrationHistory表中的實體框架遷移中,您可以刪除此表的最后一行[不推薦]

或者您可以使用rollback / undo命令

Update-Database -TargetMigration:MigrationsName

然后使用update-database -force

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM