【发布时间】:2021-01-25 17:10:34
【问题描述】:
我正在开发一个存储过程,它会生成一些税务数据并将这些数据存储到数据库中的单独表中。不久前,我创建了一个空迁移并将以下内容添加到迁移中以将存储过程添加到数据库。
using Microsoft.EntityFrameworkCore.Migrations;
namespace Tax.Data.Migrations
{
public partial class sp_Generate5498TaxData : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
var sp = @"USE [TAX_DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE sp_GenerateTaxData
@Year int
AS
BEGIN
-- A bunch of SQL that is the stored procedure
END
GO";
migrationBuilder.Sql(sp);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
不假思索地我添加了迁移,而没有在 down 方法中添加任何内容。现在,我需要更改存储过程,但我不知道如何去做,以免引起其他问题。我最初的想法是删除迁移并添加一个新的,但是由于 down 方法是空的,这会导致任何问题吗?我可以将以下内容写入现有迁移的 down 方法吗?
public override void Down()
{
this.Sql("DROP PROCEDURE sp_GenerateTaxData");
}
我的另一个想法是创建一个新的迁移并添加我的 SQL,而不是说 ALTER PROCEDURE sp_GenerateTaxData 但我再次不确定这样做的副作用是什么。我环顾四周,找不到有关如何最好地做到这一点的信息,因为我最初没有设置 down 方法的错误。关于如何远程迁移现有迁移或添加将更新 SP 的新迁移的任何建议?
【问题讨论】:
标签: c# entity-framework .net-core