我正在尝试创建一个单独的EF Core 2作为单独的项目。
我创建了一个类库(.net核心),添加了两个引用:Microsoft.EntityFrameworkCore
,Microsoft.EntityFrameworkCore.Design
然后我遇到了一个错误:
未找到指定的框架“Microsoft.NETCore.App”,版本“2.0”
我通过在根文件夹中添加一个名为global.json
的json文件来解决,其内容是:
{
"sdk": {
"version": "2.0.2"
}
}
直到这里好。
如果我运行命令:dotnet ef update database
,它会告诉:
没有为此DbContext配置数据库提供程序。
大多数人说我必须在Startup.cs
注册。但我没有它,因为该项目是类库,没有mvc核心应用程序。
那么,在这种情况下要采取什么措施?
当然,我有一个单独的mvc核心项目,该项目参考了EF核心项目。我应该在Startup.cs
文件中注册dbcontext吗?
答案 0 :(得分:1)
假设自从我这样做以来最近几周没有任何变化:
创建课程DesignTimeDbContextFactory
(将ApplicationDbContext
替换为DbContext
的名称:
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
public ApplicationDbContext CreateDbContext(string[] args)
{
var connectionString = "Server=(localdb)\\mssqllocaldb;Database=MyDbName;Trusted_Connection=True;MultipleActiveResultSets=true";
var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
builder.UseSqlServer(connectionString);
return new ApplicationDbContext(builder.Options);
}
}
现在执行以下操作之一:
如果使用Add-Migration和Update-Database命令行开关,请使用-project [project-name]标志
如果在命令行中使用dotnet,请使用--project [project-name]标志
或者您可以确保将此类库设置为启动项目,并在PM控制台中设置&#39;默认项目&#39;然后添加迁移并更新数据库