【问题标题】:Entity Framework 7 migrations on beta6beta6 上的 Entity Framework 7 迁移
【发布时间】:2015-08-20 20:19:28
【问题描述】:

升级到 asp.net5 beta6 版本后,我无法再执行迁移。

我刚刚创建了一个新项目,这些是我的设置:

project.json

{
  "webroot": "wwwroot",
  "userSecretsId": "aspnet5-WebApplication11-f079fe46-c31d-4a88-b1d4-e45ae169804b",
  "version": "1.0.0-*",

  "dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta6",
    "EntityFramework.Commands": "7.0.0-beta6",
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta6",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta6",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta6",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
    "Microsoft.Framework.Logging": "1.0.0-beta6",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

global.json

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-beta6"
  }
}

dnvm 列表

C:\Users\paulo.larini>dnvm list

Active Version     Runtime Architecture Location                            Alias                                                                            
------ -------     ------- ------------ --------                            ---
       1.0.0-beta5 clr     x86          C:\Users\paulo\.dnx\runtimes
  *    1.0.0-beta6 clr     x64          C:\Users\paulo\.dnx\runtimes
       1.0.0-beta6 clr     x86          C:\Users\paulo\.dnx\runtimes        def
       1.0.0-beta6 coreclr x64          C:\Users\paulo\.dnx\runtimes
       1.0.0-beta6 coreclr x86          C:\Users\paulo\.dnx\runtimes

错误(使用 dnx)

PM> dnx . ef migration add mymigration
dnx : System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1':
At line:1 char:1
+ dnx . ef migration add mymigration
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (System.InvalidO...ersion=v4.5.1'::String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
...

如果我在 project.json 中将框架更改为dnx46,我会收到另一个错误:

PM> dnx . ef migration add mymigration
dnx : System.InvalidOperationException: The current runtime target framework is not compatible with 'WebApplication11'.
At line:1 char:1
+ dnx . ef migration add mymigration
....

【问题讨论】:

    标签: c# asp.net-mvc entity-framework


    【解决方案1】:

    在执行 dnx 命令之前,我们需要更改应用程序文件夹的当前路径:

    PM> cd .\src\WebApplication11
    PM> dnx . ef migration add mymigration
    

    【讨论】:

    • 迁移必须在包含您的 DbContext 的项目中执行,是的。另请注意,对于 beta7 等较新的执行环境,该命令的复数形式为 dnx ef migrations add MyMigration migrations
    猜你喜欢
    • 2015-11-07
    • 2016-05-08
    • 2016-04-12
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2017-10-27
    • 1970-01-01
    相关资源
    最近更新 更多