Entity Framework
डेटाबेस इनिशिएटिवलाइज़र
खोज…
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>());
}
}