public void InitializeDatabase(TContext context) { if (null == context) { throw new ArgumentNullException("context"); } // make sure we run internal code EnsureLoadedForContext new CreateDatabaseIfNotExists <TContext>(); // apply strategy switch (strat) { case Strategy.DropCreateDatabaseAlways: context.Database.Delete(); context.Database.Create(); break; case Strategy.CreateDatabaseIfNotExists: context.Database.CreateIfNotExists(); break; case Strategy.AppendFixtures: break; default: throw new NotImplementedException(strat.ToString()); } // register context as DbContext as well as as specific implementation loader.RegisterService <TContext>(context); loader.RegisterService <DbContext>(context); // load fixtures foreach (var f in queuedFixtures) { loader.Add(f); } loader.Load(); context.SaveChanges(); }