我正在尝试创建一个连接到sqlite数据库的.net核心应用程序。
我安装了 .net core sdk 1.0,并将以下 Nuget 包添加到我的项目中:
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Sqlite.Design
我正在使用以下项目.json文件:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
"Microsoft.EntityFrameworkCore.Sqlite.Design": "1.0.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools":
{
"version": "1.0.0-final",
"imports": [
"portable-net45+win8+dnxcore50",
"portable-net45+win8"
]
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
然后我运行以下命令:
dotnet restore
现在我想检查是否已成功安装 ef 工具以创建迁移。但是当我运行时:
dotnet ef --help
我得到以下结果:
The specified framework 'Microsoft.NETCore.App', version '1.0.0-rc2-3002702' was not found.
- Check application dependencies and target a framework version installed at:
C:Program FilesdotnetsharedMicrosoft.NETCore.App
- The following versions are installed:
1.0.0
- Alternatively, install the framework version '1.0.0-rc2-3002702'.
是否可以将候选版本 2 与 1.0 版本一起安装,我真的必须这样做才能让实体框架使用 .net core 1.0 运行吗?
更新两者才能访问RTM。 您不能不匹配版本。 检查您的 Global.json 文件是否具有适当的 "sdk":{ "version" : "1.0.0-preview2-003121" }
存在。
我找到了如何做到这一点。这些更改基于 https://docs.efproject.net/en/latest/miscellaneous/rc2-rtm-upgrade.html。
- 将工具的版本更改为 1.0.0-预览2-最终
- 删除框架部分中的导入
- 向 Microsoft.EntityFrameworkCore.Design 添加依赖项
这是完整的项目.json:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
"Microsoft.EntityFrameworkCore.Sqlite.Design": "1.0.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools":
{
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8+dnxcore50",
"portable-net45+win8"
]
}
},
"frameworks": {
"netcoreapp1.0": {
}
}
}
为了完整起见,这是global.json:
{
"sdk": {
"version": "1.0.0-preview2-003121"
}
}