EntityFramewor.Core不迁移sqlite数据库

EntityFramewor.Core does not migrate sqite database

我有一个代码优先模型,例如:

 public class Cars
 {
     public int Id { get; set; }            
     public string Brand { get; set; }        
 }     

我的 DBContext 看起来像这样:

public class TestDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source = data.db");
    }

    DbSet<Car> Cars { get; set; }
}

现在,当我调用“context.Database.Migrate”时,会创建 _EFMigrationHistory table,但不会发生任何迁移。未创建 table 或列。

当我在命令行中调用“更新数据库”时,它显示“未应用任何迁移。数据库已经是最新的。”虽然有一个“汽车”table要添加

我做错了什么?

看来您可能忘记创建第一个迁移。每次以需要应用于数据库的方式更改对象模型时, 您需要创建一个迁移 - 这不是自动的,因此您可以根据需要自定义迁移代码,并将多个更改批处理到一个逻辑组中。

在包管理器控制台(命令行)中,将您的默认项目设置为包含您的 TestDbContext 的任何项目,并且 运行 带有迁移名称的 add-migration 命令,然后您的项目将有一个迁移到 运行:

PM> add-migration MyInitalMigration

Package Manager Console Example Image