खोज…


CreateDatabaseIfNotExists

का कार्यान्वयन IDatabaseInitializer कि EntityFramework में डिफ़ॉल्ट रूप से प्रयोग किया जाता है। जैसा कि नाम से ही स्पष्ट है, यह डेटाबेस बनाता है यदि कोई मौजूद नहीं है। हालाँकि जब आप मॉडल बदलते हैं, तो यह एक अपवाद फेंकता है।

उपयोग:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
    }
}

DropCreateDatabaseIfModelChanges

यदि मॉडल स्वचालित रूप से बदलता है, तो IDatabaseInitializer का यह कार्यान्वयन ड्रॉप और डेटाबेस को फिर से बनाता है।

उपयोग:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>());
    }
}

DropCreateDatabaseAlways

IDatabaseInitializer का यह कार्यान्वयन डेटाबेस को हर बार आपके संदर्भ में उपयोग किया जाता है और एप्लिकेशन ऐप डोमेन में उपयोग किया जाता है। इस तथ्य के कारण डेटा हानि से सावधान रहें, कि डेटाबेस को फिर से बनाया गया है।

उपयोग:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
    }
}

कस्टम डेटाबेस इनिशियलाइज़र

आप IDatabaseInitializer का अपना कार्यान्वयन बना सकते हैं।

एक इनिशलाइज़र का उदाहरण कार्यान्वयन, जो डेटाबेस को 0 पर माइग्रेट करेगा और फिर सभी नए माइग्रेशन (उपयोगी उदाहरण जैसे जब एकीकरण परीक्षण चला रहा हो) पर माइग्रेट करेगा। ऐसा करने के लिए आपको DbMigrationsConfiguration प्रकार की भी आवश्यकता होगी।

public class RecreateFromScratch<TContext, TMigrationsConfiguration> : 
IDatabaseInitializer<TContext>
where TContext : DbContext
where TMigrationsConfiguration : DbMigrationsConfiguration<TContext>, new()
{
    private readonly DbMigrationsConfiguration<TContext> _configuration;

    public RecreateFromScratch()
    {
        _configuration = new TMigrationsConfiguration();
    }

    public void InitializeDatabase(TContext context)
    {
        var migrator = new DbMigrator(_configuration);
        migrator.Update("0");
        migrator.Update();
    }
}

MigrateDatabaseToLatestVersion

IDatabaseInitializer कार्यान्वयन जो नवीनतम संस्करण में डेटाबेस को अपडेट करने के लिए कोड फर्स्ट माइग्रेशन का उपयोग करेगा। इस DbMigrationsConfiguration का उपयोग करने के लिए आपको DbMigrationsConfiguration प्रकार का भी उपयोग DbMigrationsConfiguration

उपयोग:

public class MyContext : DbContext {
    public MyContext() {
        Database.SetInitializer(
            new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
    }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow