part 1
To set the auto drop and create you would do something like this...
To set the auto drop and create you would do something like this...
public class MyDbContext : DbContext
{
public IDbSet<Foo> Foos { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
Database.SetInitializer(new MyDbContextInitializer());
base.OnModelCreating(modelBuilder);
}
}
public class MyDbContextInitializer : DropCreateDatabaseIfModelChanges<MyDbContext>
{
protected override void Seed(MyDbContext dbContext)
{
// seed data
base.Seed(dbContext);
}
}
part 2
You can create the tables yourself - the easiest way is:
IObjectContextAdapter adapter = (IObjectContextAdapter)context;
string script = adapter.ObjectContext.CreateDatabaseScript();
context.Database.ExecuteSqlCommand(script);
Where context is my EF 4.1 database context. Prior to this code I
drop all the tables (from the last time I created the db), and after
this I seed it with data.part 3
You need to add this to your Application_Start()
part 4
Database.SetInitializer(new MyDbContextContextInitializer());
var context = new MyDbContextContext();
context.Database.Initialize(true);
The last line forces the DB to createdpart 4
Better: add the initializer to the static constructor, like this:
public class MyDbContext : DbContext
{
static MyDbContext()
{
Database.SetInitializer(new MyDbContextContextInitializer());
}
}
No comments:
Post a Comment