在 ASP.Net 核心中使用 Entity Framework 核心搭建脚手架时出错

Error when scaffolding using Entity Framework Core in ASP.Net core

我正在尝试使用现有的 SQL Server 2016 数据库创建模型。当 运行 命令提示符如文档所示:

PM> Scaffold-DbContext "'Server=techestatevm.southeastasia.cloudapp.azure.com;Database=Blogging;User Id=newuser;Password=pass;'" Microsoft.EntityFrameworkCore.SqlServer -verbose

我收到这个错误:

Working directory: E:\Personal\TE\VS Projects\EFGetStarted.AspNetCore.ExistingDb\src\EFGetStarted.AspNetCore.ExistingDb
Executing command: dotnet ef --configuration Debug --build-base-path .\bin\ dbcontext scaffold ''Server=techestatevm.southeastasia.cloudapp.azure.com;Database=Blogging;User Id=newuser;Password=pass;''
Microsoft.EntityFrameworkCore.SqlServer --verbose
At line:1 char:215
+ ... user;Password=pass;'' Microsoft.EntityFrameworkCore.SqlServer --verbo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Unexpected token 'Microsoft.EntityFrameworkCore.SqlServer' in expression or statement.

我已经添加了所有的 Nuget 包。看我的 project.json :

{
  "dependencies": {
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.InMemory": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview1-final",
    "Microsoft.EntityFrameworkCore.Tools.Cli": "1.0.0-preview1-final",
    "Microsoft.EntityFrameworkCore.Tools.Core": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore": "1.0.0-preview1-final"
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    }
  },

  "frameworks": {
    "net452": { }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

看起来这是一个文档问题。文档中提到的建议警告是罪魁祸首。删除外部双引号解决了这个问题。

请注意,连接字符串是双引号(双引号内有单引号)。这是 RC2 中已知问题的解决方法,以了解更多详细信息。