मैंने कुछ युगल संस्थाओं और उनके नेविगेशन गुणों का नाम बदला और EF 5 में एक नया माइग्रेशन उत्पन्न किया। जैसा कि ईएफ माइग्रेशन में नाम बदलने के साथ होता है, डिफ़ॉल्ट रूप से यह वस्तुओं को छोड़ने और उन्हें फिर से बनाने के लिए जा रहा था। यही कारण है कि मैं ऐसा नहीं चाहता था इसलिए मुझे स्क्रैच से माइग्रेशन फ़ाइल का निर्माण करना पड़ा।
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 त्रुटि मिल रही है।
Msg 15248, स्तर 11, राज्य 1, प्रक्रिया sp_rename, लाइन 215 या तो पैरामीटर @objname अस्पष्ट है या दावा किया गया @objtype (COLUMN) गलत है। Msg 4902, स्तर 16, राज्य 1, पंक्ति 10 ऑब्जेक्ट "dbo.ReportSections" नहीं ढूँढ सकता क्योंकि यह मौजूद नहीं है या आपके पास अनुमतियाँ नहीं हैं।
मुझे पता नहीं चल रहा है कि यहां क्या गलत है। किसी भी अंतर्दृष्टि काफी मददगार होगा।