मैं बस एक ही समस्या से टकराया और मैंने निम्नलिखित समाधान का उपयोग किया (सभी पैकेज मैनेजर कंसोल से)
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextA" -ContextTypeName MyProject.Models.ContextA
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextB" -ContextTypeName MyProject.Models.ContextB
यह माइग्रेशन फ़ोल्डर में 2 अलग फ़ोल्डर बनाएगा। प्रत्येक में जनरेट की गई Configuration.cs
फ़ाइल होगी। दुर्भाग्य से आपको अभी भी उन Configuration.cs
फ़ाइलों का नाम बदलना होगा अन्यथा उनमें से दो होने की शिकायतें होंगी। मैंने अपनी फ़ाइलों का नाम बदलकर ConfigA.cs
औरConfigB.cs
EDIT : (शिष्टाचार केविन मैकफीट) याद रखें कि जब कॉन्फ़िगरेशन का नाम बदला जा रहा है। फ़ाइलें, वर्ग के नाम और कंस्ट्रक्टर / EDIT का भी नाम बदलें
इस संरचना के साथ आप बस कर सकते हैं
PM> Add-Migration -ConfigurationTypeName ConfigA
PM> Add-Migration -ConfigurationTypeName ConfigB
जो कॉन्फ़िगर फ़ाइलों के बगल में फ़ोल्डर के अंदर माइग्रेशन के लिए कोड फ़ाइलों को बनाएगा (यह उन फ़ाइलों को एक साथ रखने के लिए अच्छा है)
PM> Update-Database -ConfigurationTypeName ConfigA
PM> Update-Database -ConfigurationTypeName ConfigB
और अंतिम लेकिन कम से कम उन दो आदेशों से उनके गार्जिंग डेटाबेस पर सही माइग्रेशन लागू नहीं होगा।
EDIT 08 फरवरी, 2016:
मैंने EF7 संस्करण 7.0.0-rc1-16348 के साथ थोड़ा परीक्षण किया है
मुझे काम करने के लिए -o | --outputDir विकल्प नहीं मिल सका। यह देता रहाMicrosoft.Dnx.Runtime.Common.Commandline.CommandParsingException: Unrecognized command or argument
हालाँकि ऐसा लगता है कि माइग्रेशन फ़ोल्डर में पहली बार माइग्रेशन जुड़ने के बाद इसे जोड़ा जाता है, और किसी अन्य संदर्भ के लिए बाद में माइग्रेशन स्वचालित रूप से माइग्रेशन के उप-फ़ोल्डर में डाल दिया जाता है।
मूल नाम ContextA
कुछ नामकरण सम्मेलनों का उल्लंघन करने के लिए लगता है इसलिए मैं अब उपयोग करता हूं ContextAContext
और ContextBContext
। इन नामों का उपयोग आप निम्न आदेशों का उपयोग कर सकते हैं: (ध्यान दें कि मेरा dnx अभी भी पैकेज मैनेजर कंसोल से काम करता है और मुझे माइग्रेशन करने के लिए एक अलग सीएमडी विंडो खोलना पसंद नहीं है)
PM> dnx ef migrations add Initial -c "ContextAContext"
PM> dnx ef migrations add Initial -c "ContextBContext"
यह एक मॉडल स्नैपशॉट और के लिए Migrations
फ़ोल्डर में एक प्रारंभिक माइग्रेशन बनाएगा ContextAContext
। यह ContextB
इन फ़ाइलों के लिए नाम से एक फ़ोल्डर बनाएगाContextBContext
मैंने मैन्युअल रूप से एक ContextA
फ़ोल्डर जोड़ा और माइग्रेशन फ़ाइलों ContextAContext
को उस फ़ोल्डर से स्थानांतरित कर दिया। फिर मैंने उन फ़ाइलों के अंदर नाम स्थान का नाम बदल दिया (स्नैपशॉट फ़ाइल, प्रारंभिक माइग्रेशन और ध्यान दें कि प्रारंभिक माइग्रेशन फ़ाइल ... डिज़ाइनर .cs) के तहत एक तीसरी फ़ाइल है। मुझे .ContextA
नामस्थान में जोड़ना था , और वहां से रूपरेखा इसे फिर से स्वचालित रूप से संभालती है।
निम्नलिखित आदेशों का उपयोग करना प्रत्येक संदर्भ के लिए एक नया प्रवासन बनाएगा
PM> dnx ef migrations add Update1 -c "ContextAContext"
PM> dnx ef migrations add Update1 -c "ContextBContext"
और उत्पन्न फ़ाइलों को सही फ़ोल्डर में डाला जाता है।