0

Я пытаюсь расширить структуру ASP.NET MVC, чтобы я мог создавать модули. Я хочу иметь возможность создавать отдельные мини-проекты mvc, объединять их в mvc-app и строить/устанавливать все это. Таким образом, я могу выбрать нужные модули в одном приложении.создавать таблицы базы данных в модульном подходе структуры asp.net mvc

Чтобы сделать мини-проектов MVC, которые я хочу использовать этот метод: http://www.wynia.org/wordpress/2008/12/aspnet-mvc-plugins/

Сейчас я пытаюсь сделать базу данных построить с несколькими dbcontexts. Для этого я использовал шаблон IRepository. Сначала я создал проект Entity Framework (4.3) с этим шаблоном и смог создать полную базу данных с событием OnModelCreating.

public class Context : DbContext 
    { 
     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      base.OnModelCreating(modelBuilder); 

      // /* Use MEF to load all plugins. I'll use the mock interface IPlugin */ 

      List<IContext> Contexts = new List<IContext>(); 
      Contexts.Add(new BikeContext()); 
      Contexts.Add(new CarContext()); 
      Contexts.Equals(new BlogContext()); 


      foreach (IContext context in Contexts) 
       context.Setup(modelBuilder); 
     } 
    } 

это пример функции, которая запускает программу установки и в каждом подконтекст:

public class CarContext : Context, IContext 
    { 
     public List<Car> Cars { get; set; } 

     void IContext.Setup(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<Car>().ToTable("Cars"); 
      modelBuilder.Entity<Car>().HasKey(car => car.Id);    
     } 
    } 

Этот репозиторий из примера, приведенного в MEF Plugins and EF CodeFirst - How?

Если я использую это в MVC приложения (который использует EF по умолчанию, правильно?) функция OnModelCreating запускается, поэтому выполняют функции настройки, но не создает ни базы данных, ни таблицы. В итоге я получаю сообщение об ошибке, потому что приложение не может подключиться к базе данных при попытке выбрать данные. Это логично, потому что нет базы данных.

В основном я хочу использовать решение mef-plugins-and-ef-codefirst в приложении MVC. Я что-то упускаю? Есть ли другой способ создать таблицы вручную в вашем коде в MVC/EF?

ответ

0

Ну я нашел решение сам:

я добавил это к индексу контроллера:

Context context = new Context(); 
      context.Database.CreateIfNotExists(); 

И изменил общедоступный список в CarContext в общественном DbSet.

Теперь он делает базу данных с таблицами, и я получаю данные через CarContext.

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