在類庫項目中啟用EF Core的遷移

.net-core entity-framework 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"
    }
  }
}

有遺漏嗎?

親愛的,艾倫

熱門答案

我在類庫中有我的上下文,模型和存儲庫。通過我的EF Core註冊中的簡單配置調用,我的遷移保存在我的Web項目中,以便工具工作(我認為最適合您遇到的相同情況的解決方法)。不確定這是否適合您...

還有其他方法可以解決這個問題,例如將類庫配置為應用程序 ,並且我意識到你仍然需要在我正在做的方式中在兩個項目(我的案例中是Web應用程序和類庫)中引用EF包它。我還沒有完成“將您的類庫配置為應用程序”,因為它只是想提交一些內容。

這是我的Startup.cs的EF設置:

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


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow