我有一个问题,有简单的背景:
public DbSet<Current> Currents { get; set; }
public DbSet<Event> Events { get; set; }
public DbSet<ApplicationFile> ApplicationFile { get; set; }
private readonly string dbPath;
public SqliteContext(string filePath)
{
dbPath = filePath;
}
public SqliteContext()
{
dbPath = $@"{AppDomain.CurrentDomain.BaseDirectory}\application.db";
ApplicationFileMigration();
}
private void ApplicationFileMigration()
{
Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite($@"Data Source={dbPath}");
}
我想仅在ApplicationFile实体上创建迁移并忽略Currents和Events,我知道可以使用单独的上下文来完成,但是它是否可以在单个上下文中,某种忽略注释或默认配置?
答案 0 :(得分:1)
阅读以下内容:Entity Framework Code First Migrations with an existing database
使用迁移的标准方法是首先使用现有模型创建上下文 。然后添加一个迁移,其中忽略实际更改(根据链接文章中的步骤3)
Add-Migration InitialCreate –IgnoreChanges
Update-Database
这将创建迁移历史记录表,并将当前模型标记为已映射。
然后添加您真正想要迁移的其他实体作为第二次迁移。
因此,在您的情况下,首先删除ApplicationFile
进行初始迁移,然后重新添加它并创建第二次迁移。它只会为ApplicationFile
创建DDL SQL,而不会为其他实体创建