2010-11-29 1 views
1

Я использую Entity Framework 4 Code Сначала в моем проекте .net MVC 2.0, и у меня возникли трудные времена, чтобы получить синхронизацию с моими сущностями. То, что я хочу, - это страница, которую я могу назвать, например:/DB/Recreate, которая удалит мою текущую БД и заново создаст пустую. В настоящее время в моей global.asax я имеюКак мне восстановить БД, используя код EF4 для теста

protected override void OnApplicationStarted() 
     { 
      Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

      AreaRegistration.RegisterAllAreas(); 

      RegisterRoutes(RouteTable.Routes); 
      RegisterAllControllersIn(Assembly.GetExecutingAssembly()); 
     } 

Я пытаюсь переключить инициализатор базы данных в моем проекте, но я действительно не уверен, так как он уже должен был инициализирован, что я использую правильный подход:

 Database.SetInitializer(new AlwaysRecreateDatabase<CorpiqDb>()); 
     var bidon = _session.All<Admin>(); 
     Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 
     bidon = _session.All<Admin>(); 

Я не знаю, как это сделать, спасибо за помощь!

ответ

2

Ok Я нашел решение:

var dbContext = new CorpiqDb().Database ; 
dbContext.Delete(); 
dbContext.Initialize(); 
dbContext.EnsureInitialized(); 
Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

Это падение моей базы данных и создать новую, отражающую самые последние модели, я могу даже засеять базу данных с некоторыми данными для моего теста.

+0

Спасибо за сообщение. –

 Смежные вопросы

  • Нет связанных вопросов^_^