实体框架 7 的“添加迁移”命令不适用于 ASP.NET 5 类库

本文关键字:适用于 不适用 命令 ASP NET 类库 添加迁移 框架 迁移 添加 实体 | 更新日期: 2023-09-27 18:30:56

我创建了一个具有以下依赖项的 ASP.NET 5 类库

"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"EntityFramework.Commands": "7.0.0-rc1-final"

我创建了我的模型和数据库上下文类。现在,我想添加一个迁移,以便可以创建数据库。通过调用

dnx ef Add-Migration InitialMigration

从命令行,给我以下错误消息

System.InvalidOperationException:当前运行时目标框架 与"Yugasat.Test"不兼容。当前运行时目标 框架:"DNX,版本=v4.5.1 (dnx451)" 版本:
1.0.0-rc1-16231 类型:Clr 体系结构:x86 操作系统名称:Windows 操作系统版本:10.0 运行时 ID:win10-x86

请确保运行时与 中指定的框架匹配 project.json at Microsoft.Dnx.ApplicationHost.DefaultHost.GetEntryPoint(String 应用程序名称)在 Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args) at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args) --- 从引发异常的先前位置的堆栈跟踪结束 --- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List'1 args, IRuntimeEnvironment env, String appBase, FrameworkName 目标框架) 在 Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext) at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext)

据我从错误消息中看到,我的dnx版本是4.5.1,我的projects.json文件中的框架设置为4.5.1

{
    "version": "1.0.0-*",
    "description": "Yugasat.Test Class Library",
    "authors": [ "AndreL" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",
    "frameworks": {
        "net451": {
    }
  },
  "dependencies": {
      "EntityFramework.Core": "7.0.0-rc1-final",
      "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
      "EntityFramework.Commands": "7.0.0-rc1-final"
   },
   "commands": {
       "ef": "EntityFramework.Commands"
   }
}

实体框架 7 的“添加迁移”命令不适用于 ASP.NET 5 类库

"frameworks": {
    "net451": {}
}

您需要在此处使用dnx451,而不是net451.然后,当前运行时目标框架(DNX,Version=v4.5.1 (dnx451))将正确选取它。

另请注意,正确的命令是 dnx ef migrations add InitialMigration ;我不确定Add-Migration是否有效。