我有一个ASP.Net Core 3.0解决方案,其中包含2个项目:Web(开始项目)和Core(类库)。我尝试使用程序包管理器控制台创建迁移:
添加迁移初始-Project Core -StartupProject Web
并出现以下错误:
无法加载文件或程序集'netstandard,版本= 2.1.0.0,区域性=中性,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();
}
和我在appsettings.json中的连接字符串:
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=FinApp;Trusted_Connection=True;"
}
这是我的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()
{
}
}
有人遇到同样的问题吗?
我认为您必须像这样定义上下文承包商:
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}