![](/img/trans.png)
[英]Code First Migrations - Update-database -script command generated SQL script not working
[英]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.