![](/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.