ฉันเปลี่ยนชื่อเอนทิตีสองรายการและคุณสมบัติการนำทางของพวกเขาและสร้างการย้ายใหม่ใน EF 5 ตามปกติกับการเปลี่ยนชื่อในการย้ายข้อมูล EF โดยค่าเริ่มต้นมันจะทิ้งวัตถุและสร้างขึ้นใหม่ นั่นไม่ใช่สิ่งที่ฉันต้องการดังนั้นฉันจึงต้องสร้างไฟล์โยกย้ายตั้งแต่เริ่มต้น
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");
}
ทั้งหมดที่ฉันพยายามทำคือการเปลี่ยนชื่อdbo.ReportSections
ไปdbo.ReportPages
แล้วเพื่อdbo.ReportSectionGroups
dbo.ReportSections
แล้วผมก็ต้องเปลี่ยนชื่อคอลัมน์คีย์ต่างประเทศdbo.ReportPages
จากการGroup_Id
Section_Id
ฉันวางคีย์ต่างประเทศและดัชนีที่เชื่อมตารางเข้าด้วยกันจากนั้นฉันกำลังเปลี่ยนชื่อตารางและคอลัมน์คีย์ต่างประเทศจากนั้นฉันจะเพิ่มดัชนีและคีย์ต่างประเทศอีกครั้ง ฉันคิดว่านี่จะใช้งานได้ แต่ฉันได้รับข้อผิดพลาด SQL
ข่าวสารเกี่ยวกับ 15248 ระดับ 11 สถานะ 1 ขั้นตอน sp_rename บรรทัด 215 พารามิเตอร์ @objname ไม่ชัดเจนหรือ @objtype (COLUMN) ที่อ้างสิทธิ์ไม่ถูกต้อง ข่าวสารเกี่ยวกับ 4902 ระดับ 16 สถานะ 1 บรรทัด 10 ไม่พบวัตถุ "dbo รายงานSections" เนื่องจากไม่มีอยู่หรือคุณไม่มีสิทธิ์
ฉันไม่มีเวลาง่ายๆที่จะหาว่าเกิดอะไรขึ้นที่นี่ ข้อมูลเชิงลึกใด ๆ จะเป็นประโยชน์อย่างมาก