在类库项目中启用EF Core的迁移

时间:2017-01-24 06:07:53

标签: entity-framework .net-core entity-framework-core

我创建了一个类库项目,我在其中定义了我的Models,DbContext,connectionstring等。但是,我无法使用下面的命令添加迁移

命令

dotnet ef migration add initial

我收到以下错误

错误

Could not invoke this command on the startup project 'Alan.Pois.Data'. This version of the Entity Framework Core .NET Command Line Tools does not support commands on class library projects in ASP.NET Core and .NET Core applications.

以下是project.json

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.1",
    "Microsoft.EntityFrameworkCore.Design": { "version": "1.1.0", "type" : "build" },
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
    "CommonServiceLocator": "1.3.0"
  },

  "frameworks": {
    "net461": {
    }
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": {
      "version": "1.1.0-preview4"
    }
  }
}

有什么遗失吗?

的问候, 艾伦

1 个答案:

答案 0 :(得分:2)

我在类库中有我的上下文,模型和存储库。我的迁移保存在我的Web项目中,以便工具工作(我认为最适合您遇到的相同情况的解决方法),在我的EF Core注册中进行简单的配置调用。不确定这是否适合您......

还有其他方法可以解决这个问题,比如configuring your class library as an application,并且我意识到你仍然需要在我的两个项目中引用EF包(在我的案例中是Web应用程序和类库)正在做。我没有完成“将您的类库配置为应用程序”,因为它只是想提交一些内容。

这是我的Startup.cs

中的EF设置
services.AddDbContext<MyContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("MyConnectionString"), b => b.MigrationsAssembly("MyStartupProject")));