Created
April 20, 2016 11:21
-
-
Save aivascu/0daa14464e08b8b0e182c43f9a0286c8 to your computer and use it in GitHub Desktop.
DbContext sample on how to initialize a database depending on the build type
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyDbContext : DbContext | |
{ | |
public DbSet<MyClass> MyClasses { get; set; } | |
protected override void OnModelCreating (DbModelBuilder modelBuilder) | |
{ | |
base.OnModelCreating (modelBuilder); | |
modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention> (); | |
// Add any configuration or mapping stuff here | |
} | |
public void Seed (MyDbContext Context) | |
{ | |
#if DEBUG | |
// Create my debug (testing) objects here | |
var TestMyClass = new MyClass () { ... }; | |
Context.MyClasses.Add (TestMyClass); | |
#endif | |
// Normal seeding goes here | |
Context.SaveChanges (); | |
} | |
public class DropCreateIfChangeInitializer : DropCreateDatabaseIfModelChanges<MyDbContext> | |
{ | |
protected override void Seed (MyDbContext context) | |
{ | |
context.Seed (context); | |
base.Seed (context); | |
} | |
} | |
public class CreateInitializer : CreateDatabaseIfNotExists<MyDbContext> | |
{ | |
protected override void Seed (MyDbContext context) | |
{ | |
context.Seed (context); | |
base.Seed (context); | |
} | |
} | |
static MyDbContext () | |
{ | |
#if DEBUG | |
Database.SetInitializer<MyDbContext> (new DropCreateIfChangeInitializer ()); | |
#else | |
Database.SetInitializer<MyDbContext> (new CreateInitializer ()); | |
#endif | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment