Заден план:
Имам множество класове, наречени 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# класове по-долу
Application\Models\IdentityModels.cs
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Application\Areas\Article\Models\Article.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; }
}
}
Крайна бележка
Просто съм прекалено мързелив или придирчив? Не е ли по-ефективно да се изпълнява един контекст? Нов съм в това, така че разбирането ми за най-добрите практики е в най-добрия случай нестабилно.
Ресурси за насоки
Code First Migration in Multiple DbContext
Наследяване в Entity Framework: Таблица на йерархия
Конзолни команди на Package Manager - get-help Enable-Migrations -detailed
& get-help Add-Migration -detailed
& get-help Update-Database -detailed