【发布时间】:2017-09-14 07:27:07
【问题描述】:
我正在使用实体框架和 Codefirst 创建存储过程。 正如我所强调的,我们应该在包管理器中执行一些步骤来创建 SP。
1 - 启用迁移
2- add-migration 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....”,它也不起作用,也不会发生任何变化。 谢谢
已编辑
考虑这种情况,我想更改我的 SP 名称(仅作为示例) 所以我需要将查询更改为“更改存储过程 tespSP2 ...” 或任何其他更改,我应该再次运行 add-migration 吗?还是 update-database 应该这样做??
【问题讨论】:
-
讨论了各种技术here。
标签: entity-framework stored-procedures code-first entity-framework-migrations