Saya mengganti nama beberapa entitas dan properti navigasinya dan menghasilkan Migrasi baru di EF 5. Seperti biasa dengan penggantian nama dalam migrasi EF, secara default akan menghapus objek dan membuatnya kembali. Bukan itu yang saya inginkan jadi saya harus membuat file migrasi dari awal.
public override void Up()
{
DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports");
DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups");
DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections");
DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" });
DropIndex("dbo.ReportSections", new[] { "Group_Id" });
DropIndex("dbo.Editables", new[] { "Section_Id" });
RenameTable("dbo.ReportSections", "dbo.ReportPages");
RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections");
RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id");
AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id");
AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", "Id");
AddForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages", "Id");
CreateIndex("dbo.ReportSections", "Report_Id");
CreateIndex("dbo.ReportPages", "Section_Id");
CreateIndex("dbo.Editables", "Page_Id");
}
public override void Down()
{
DropIndex("dbo.Editables", "Page_Id");
DropIndex("dbo.ReportPages", "Section_Id");
DropIndex("dbo.ReportSections", "Report_Id");
DropForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages");
DropForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections");
DropForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports");
RenameColumn("dbo.ReportPages", "Section_Id", "Group_Id");
RenameTable("dbo.ReportSections", "dbo.ReportSectionGroups");
RenameTable("dbo.ReportPages", "dbo.ReportSections");
CreateIndex("dbo.Editables", "Section_Id");
CreateIndex("dbo.ReportSections", "Group_Id");
CreateIndex("dbo.ReportSectionGroups", "Report_Id");
AddForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections", "Id");
AddForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups", "Id");
AddForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports", "Id");
}
Yang saya coba lakukan hanyalah mengganti nama dbo.ReportSections
menjadi dbo.ReportPages
dan kemudian dbo.ReportSectionGroups
menjadi dbo.ReportSections
. Lalu saya perlu mengganti nama kolom kunci asing dbo.ReportPages
dari Group_Id
menjadi Section_Id
.
Saya membuang kunci asing dan indeks yang menghubungkan tabel bersama-sama, lalu saya mengganti nama tabel dan kolom kunci asing, lalu saya menambahkan indeks dan kunci asing lagi. Saya berasumsi ini akan berhasil tetapi saya mendapatkan kesalahan SQL.
Psn 15248, Level 11, Status 1, Prosedur sp_rename, Baris 215 Entah parameter @objname ambigu atau @objtype (COLUMN) yang diklaim salah. Psn 4902, Level 16, Status 1, Baris 10 Tidak dapat menemukan objek "dbo.ReportSections" karena tidak ada atau Anda tidak memiliki izin.
Saya tidak merasa mudah mencari tahu apa yang salah di sini. Wawasan apa pun akan sangat membantu.