添加迁移时无法加载文件或程序集 netstandard

Avi*_*ale 5 c# asp.net-core .net-standard entity-framework-migrations

我有一个 ASP.Net Core 3.0 解决方案,有 2 个项目:Web(启动项目)和 Core(类库)。我尝试使用包管理器控制台创建迁移:

添加迁移初始-项目核心-StartupProject Web

并得到以下错误:

无法加载文件或程序集“netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51”。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)

这两个项目的引用中都有 Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.EntityFrameworkCore.Tools。这就是我在 Startup.cs 中创建连接的方法:

public void ConfigureServices(IServiceCollection services)
{
    var connection = Configuration.GetConnectionString("DefaultConnection");
    services.AddDbContext<ApplicationContext>(options =>
    options.UseSqlServer(connection));
    services.AddControllersWithViews();
}
Run Code Online (Sandbox Code Playgroud)

和 appsettings.json 中的连接字符串:

"ConnectionStrings": {
        "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=FinApp;Trusted_Connection=True;"
    }
Run Code Online (Sandbox Code Playgroud)

这是我的 ApplicationContext.cs:

public class ApplicationContext : DbContext
{
    public DbSet<Account> Accounts { get; set; }
    public DbSet<Category> Categories { get; set; }
    public DbSet<Currency> Currencies { get; set; }
    public DbSet<Operation> Operations { get; set; }
    public DbSet<User> Users { get; set; }

    public ApplicationContext()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

有人有同样的问题吗?

小智 -2

我认为你必须像这样定义上下文承包商:

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
Run Code Online (Sandbox Code Playgroud)