Фон:
У меня есть несколько классов с именем ApplicationDbContext. Один расположен в корне, а остальные распределены по своим модульным каталогам. В настоящее время у меня есть возможность обрабатывать миграцию данных таким образом.
Вопрос:
Как бы я переписал каждый из моих классов в подкаталогах папки области, чтобы исключить отдельные вызовы миграции?
Источник:
Команды переноса базы данных ниже
Создание миграций для корневых моделей
Enable-Migrations -ContextTypeName:JosephMCasey.Models.ApplicationDbContext -MigrationsDirectory:Migrations\Root
Add-Migration -configuration JosephMCasey.Migrations.Root.Configuration Root
Update-Database -configuration JosephMCasey.Migrations.Root.Configuration -Verbose
Установка миграций для каждой модели «Области»
Enable-Migrations -ContextTypeName:JosephMCasey.Areas.Article.Models.ApplicationDbContext -MigrationsDirectory:Migrations\Article
Add-Migration -configuration JosephMCasey.Migrations.Article.Configuration Article
Update-Database -configuration JosephMCasey.Migrations.Article.Configuration -Verbose
Идеализированные миграции
Enable-Migrations
Add-Migration Application
Update-Database
Классы C# ниже
Приложение\Модели\ИдентитиМоделс.КС
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Приложение\Области\Статья\Модели\Статья.cs
namespace JosephMCasey.Areas.Article.Models
{
public class ArticleContent
{
...
}
public class ApplicationDBContext : DbContext
{
public DbSet<ArticleContent> Articles { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Tag> Tags { get; set; }
}
}
Конечная нота
Я просто слишком ленив или придирчив? Разве не более эффективно запускать один контекст? Я новичок в этом, поэтому мое понимание лучших практик в лучшем случае шатко.
Ресурсы для руководства
Первая миграция кода в нескольких контекстах DbContext
Наследование в Entity Framework: Таблица для каждой иерархии
Команды консоли диспетчера пакетов — get-help Enable-Migrations -detailed
и get-help Add-Migration -detailed
и get-help Update-Database -detailed