迁移仅创建数据库,而不创建表

时间:2019-08-16 10:04:23

标签: c# entity-framework-core ef-core-2.2

我正在使用EF Core 2.2.6-serviceic-10079。通过几次迁移,我试图创建一个新的数据库。一旦我运行update-database,它将创建一个空白数据库,但不应用迁移,因此除了迁移表之外,没有其他表被创建。

迁移文件夹具有多个迁移。

ApplicationDbContext:

  public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, ILocalizationDbContext
{
    private readonly IServiceProvider _serviceProvider;

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }        

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options,
        IServiceProvider serviceProvider)
        : base(options)
    {
        _serviceProvider = serviceProvider;
    }

    public DbSet<...

DBSnapShot:

    [DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
    protected override void BuildModel(ModelBuilder modelBuilder)
    {
        modelBuilder
            .HasAnnotation("ProductVersion", "2.2.6-servicing-10079")
            .HasAnnotation("Relational:MaxIdentifierLength", 128)
            .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

        modelBuilder.Entity(...

输出:

  

PM>更新数据库Microsoft.EntityFrameworkCore.Model.Validation [10400]         敏感数据记录已启用。日志条目和异常消息可能包含敏感的应用程序数据,此模式仅应   在开发过程中启用。   Microsoft.EntityFrameworkCore.Infrastructure [10403]         实体框架核心2.2.6-servicing-10079使用提供程序初始化了“ ApplicationDbContext”   带有选项的“ Microsoft.EntityFrameworkCore.SqlServer”:   SensitiveDataLoggingEnabled MigrationsAssembly =基础结构   Microsoft.EntityFrameworkCore.Database.Command [20101]         已执行DbCommand(22毫秒)[Parameters = [],CommandType ='Text',CommandTimeout = '30']         SELECT OBJECT_ID(N'[__ EFMigrationsHistory]'); Microsoft.EntityFrameworkCore.Database.Command [20101]         已执行DbCommand(2毫秒)[Parameters = [],CommandType ='Text',CommandTimeout = '30']         SELECT OBJECT_ID(N'[__ EFMigrationsHistory]'); Microsoft.EntityFrameworkCore.Database.Command [20101]         已执行DbCommand(4毫秒)[Parameters = [],CommandType ='Text',CommandTimeout = '30']         选择[MigrationId],[ProductVersion]         来自[__EFMigrationsHistory]         ORDER BY [MigrationId]; Microsoft.EntityFrameworkCore.Migrations [20405]         没有应用迁移。该数据库已经是最新的。没有应用迁移。该数据库已经是最新的。完成。

1 个答案:

答案 0 :(得分:0)

Shaun Wilsonhttps://stackoverflow.com/a/27895448/362261的回答解决了我的问题。

他的回答是这样的:

“批量清理”解决了我的问题,表明EF使用的文件夹不是当前所选的“解决方案配置(例如DEBUG)”中的旧/无效程序集。

要进行批量清洁:

  1. 选择主菜单->构建
  2. 选择批处理构建...
  3. 点击全选
  4. 点击清理

关闭对话框,重建并重新尝试迁移。