在 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 中已知问题的解决方法,以了解更多详细信息。
我正在尝试使用现有的 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 中已知问题的解决方法,以了解更多详细信息。