2013-11-27 7 views
11

नहीं कहा जा रहा है हम इकाई फ्रेमवर्क 4.4 का उपयोग कर रहे हैं और माइग्रेशन का उपयोग कर रहे हैं। डेटाबेस पहले से मौजूद है और हमें इसे नियमित आधार पर अपडेट करने की आवश्यकता है। बीज विधि, हालांकि, नहीं कहा जा रहा है और इसलिए लुकअप मान जोड़े नहीं जा रहे हैं।इकाई फ्रेमवर्क बीज विधि को

कोड का पालन दिखता है:

internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext> 
{ 
     public Configuration() 
     { 
      AutomaticMigrationsEnabled = false; 
      SetSqlGenerator("System.Data.SqlClient", new OurSqlServerMigrationSqlGenerator()); 
     } 

     protected override void Seed(KinectionDbContext context) 
     { 
      SeedLookupTables(context); 
     } 

     private static void SeedLookupTables(KinectionDbContext context) 
     { 
      context.Titles.AddOrUpdate(t => t.Value, 
       new Title {Value = "Mr"}, 
       new Title {Value = "Mrs"}, 
       new Title {Value = "Miss"}, 
       new Title {Value = "Ms"}, 
       new Title {Value = "Dr"} 
      ); 

      context.SaveChanges(); 
     } 

} 


public class MyDbContext : ObjectContext 
    { 
     public MyDbContext() 
     { 

     } 

     static MyDbContext() 
     { 
      Database.SetInitializer<KinectionDbContext>(null); 
     } 

     public DbSet<Title> Titles { get; set; } 

} 

और हम बुला रहे हैं:

Add-Migration Seed 

लेकिन प्रवास खाली ऊपर आता है।

क्या किसी को पता है कि बीज को सेमीोट क्यों कहा जा रहा है और क्यों लुकअप टेबल में अतिरिक्त मूल्यों का पता नहीं लगाया जा रहा है?

धन्यवाद एन

उत्तर

23

माइग्रेशन बीज विधि

रन जब भी अद्यतन-डाटाबेस PowerShell आदेश है निष्पादित

आप Update-Database नहीं Add-Migration

Add-Migration कॉल करने की आवश्यकता एससीए डेटाबेस को माइग्रेट करने के लिए कमांड वाले माइग्रेशन फ़ाइल को एक नए संस्करण में ffolds। यह खाली है क्योंकि बनाने के लिए कोई स्कीमा परिवर्तन नहीं है।

Code first Db initialization strategies.
Code first migrations recommended reading
Managed Migrations
Database initializer and Migrations Seed methods

+0

धन्यवाद, काम किया है कि :): यदि सब आप क्या करना चाहते बीज है

संदर्भ Update-Database कॉल करने से पहले Add-Migration कॉल करने के लिए की जरूरत नहीं है। हालांकि, बीजिंग के लिए एसक्यूएल स्क्रिप्ट प्राप्त करने का कोई तरीका है? –

+0

यहां जवाब देखें: http://stackoverflow.com/a/18190509/150342 – Colin

+0

अद्यतन-माइग्रेशन त्रुटियों का एक बैग देता है क्योंकि मेरी बीज विधि में मैंने फ़ाइलों या अन्य तर्क कार्यान्वयन का उपयोग किया –

संबंधित मुद्दे