वे आरटीएम तक ऐसा करने का कोई तरीका नहीं दे रहे हैं, जिस बिंदु पर उन्होंने एक कमांड लाइन ऐप और एक एमएसडीओपी प्रदाता का वादा किया है। स्रोत: http://blogs.msdn.com/b/adonet/archive/2011/11/29/code-first-migrations-beta-1-released.aspx
बेशक कि से संतुष्ट नहीं किया जा रहा है, PowerShell आदेश संकुल निर्देशिका में संग्रहीत और सादा पाठ, यह सिर्फ एक ही निर्देशिका में संग्रहीत एक विधानसभा बुलाया EntityFramework.Migrations.Commands लोड करने के लिए प्रकट होता है है।
कि विधानसभा के माध्यम से ट्रेसिंग मैं निम्नलिखित
public class MyContext : DbContext
{
static MyContext()
{
DbMigrationsConfiguration configuration = new DbMigrationsConfiguration() {
MigrationsAssembly = typeof(MyContext).Assembly,
ContextType = typeof(MyContext),
AutomaticMigrationsEnabled = true,
};
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(null);
}
}
अद्यतन के साथ आया था: के बाद प्रयोग का एक सा मैं कुछ और कार्य
- के लिए स्थिर निर्माता में एक अद्यतन प्रदर्शन पता लगा अपने संदर्भ खराब है क्योंकि यह पावरहेल कमांड को तोड़ता है, एप्लिकेशन स्टार्टअप को कोड को अन्य तरीके से जोड़ने से बेहतर है (ग्लोबल.एक्सएक्स, वेबएक्टिवेटर या मुख्य विधि)
- उपरोक्त कोड केवल स्वचालितमी का उपयोग करते समय ही काम करता है ग्रंथों, आपको माइग्रेशन नामस्थान को मैन्युअल रूप से बनाए गए माइग्रेशन
- पर कॉन्फ़िगर करने के लिए माइग्रेशन नेमस्पेस सेट करने की आवश्यकता है, जो कॉन्फ़िगरेशन क्लास मैं बना रहा था, पहले से ही आपके प्रोजेक्ट में मौजूद होना चाहिए (जब आप माइग्रेशन न्यूज पैकेज स्थापित करते हैं), तो बस इसके बजाय तुरंत इसे चालू करें।
कोड जिसका मतलब है अपने Global.asax
Application_Start
विधि में जोड़ने के लिए
Database.SetInitializer<MyContext>(new MigrateDatabaseToLatestVersion<MyContext, NAMESPACE.TO.MIGRATIONS.Configuration>());
लाइन
DbMigrator dbMigrator = new DbMigrator(new NAMESPACE.TO.MIGRATIONS.Configuration());
dbMigrator.Update(null);
कृपया ध्यान दें कि यह अब पुराना है, ईएफ 4.3 के आरटीएम में माइग्रेटडेटाडेटा टोटलैटवेर्सन नामक एक नया डेटाबेस प्रारंभकर्ता है। अधिक जानकारी के लिए http://stackoverflow.com/questions/9281423/entity-framework-4-3-run-migrations-at-plplication-start देखें। – Betty
हालांकि संदर्भ कन्स्ट्रक्टर में प्रारंभकर्ता को सेट करने से पावरहेल स्क्रिप्ट में हस्तक्षेप होता है। मैं उपरोक्त कोड के साथ एक app_start मॉड्यूल का उपयोग करने के लिए वापस आ गया है। – Betty