Я пытаюсь расширить структуру 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?