You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core 8无法生成迁移文件,多种排查无效求助

EF Core 8无法生成迁移文件的问题及解决过程

近一个月来完全无法使用EF Core 8创建任何迁移文件,此前该功能一直正常,现在就连本地原本能生成迁移的分支也失效了。

以下是执行add-migration命令的项目中,*.csproj文件里的EF Core相关包引用:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="8.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.2">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.2">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

已尝试的排查操作:

  • 添加了DesignTimeDbContextFactory
  • 检查ApplicationDbContext配置及对应模型的DbSet<>是否正确添加
  • 确保ApplicationDbContext包含无参构造函数
  • 已在Program.cs中注册ApplicationDbContext
  • 验证数据库连接字符串正确且能正常连接
  • 通过Github Copilot排查,未检测到错误
  • 删除现有迁移文件和Snapshot文件,问题仍未解决

调试后确认以下代码均能正常工作:

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

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var configuration = new ConfigurationBuilder()
            .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
            .AddJsonFile("appsettings.json")
            .Build();

        optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
        base.OnConfiguring(optionsBuilder);
    }

    // 所有DbSet定义如下:
    public DbSet<MyEntity> MyEntities => Set<MyEntity>();
}

public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext CreateDbContext(string[] args)
    {
        var configuration = new ConfigurationBuilder()
                        .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                        .AddJsonFile("appsettings.json")
                        .Build();
        var optionsBuilder = new DbContextOptionsBuilder<ApplicationDbContext>();
        optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));

        return new ApplicationDbContext(optionsBuilder.Options);
    }
}

更新:
将ApplicationDbContext迁移至独立项目后,问题解决。实体类原本就处于独立项目中,因此无需额外迁移实体类。

内容的提问来源于stack exchange,提问作者m3xpl4y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:23:20