Macos Visual Studio Mac预览实体框架SQLite添加迁移
今天我已经安装了Visual Studio for Mac(OSX 10.12.1),而且我已经投入了相当广泛的精力 我想尝试让EntityFrameworkCore(1.1.0)与SQLite一起运行 因此,我创建了一个新的控制台应用程序.NETCore,并且在添加所有必要的nuget包时遇到了一些麻烦。不知何故,VisualStudio无法下载依赖项,因此我必须手动下载每个依赖项。(也许这就解决了问题:还没有测试过这个。) 如本文()所述,我想添加迁移,但在IDE中找不到必要的命令行工具。 我错过什么了吗 然后,我继续使用.NET Core CLI通过手动执行。安慰( ). 但是当我执行Macos Visual Studio Mac预览实体框架SQLite添加迁移,macos,visual-studio,entity-framework-core,.net-core,Macos,Visual Studio,Entity Framework Core,.net Core,今天我已经安装了Visual Studio for Mac(OSX 10.12.1),而且我已经投入了相当广泛的精力 我想尝试让EntityFrameworkCore(1.1.0)与SQLite一起运行 因此,我创建了一个新的控制台应用程序.NETCore,并且在添加所有必要的nuget包时遇到了一些麻烦。不知何故,VisualStudio无法下载依赖项,因此我必须手动下载每个依赖项。(也许这就解决了问题:还没有测试过这个。) 如本文()所述,我想添加迁移,但在IDE中找不到必要的命令行工具。
dotnet ef migrations add init
时,我得到以下错误
未找到与命令“dotnet ef”匹配的可执行文件
是否有人能够成功运行此功能?检查project.json文件中是否有此部分,如果缺少,请添加它
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4"
}
这对EF 1.1有效,以前的版本使用的是
Microsoft.EntityFrameworkCore.Tools
packageVisual Studio for Mac 2017当前(2017年4月)不支持添加对Microsoft.EntityFrameworkCore.Tools.DotNet
的引用,并返回错误:
Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' has a package type 'DotnetCliTool' that is not supported by project 'MacMvc'.
您可以手动编辑该文件,并将引用直接添加到csproj
文件,如下所示。将此添加到您的csproj文件:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
然后运行dotnet restore
安装该软件包。之后,您将能够根据文档使用dotnet ef migrations add NameOfMigration
和dotnet ef database update
脚本
注意:执行命令时,您必须在项目目录中
另请参见针对Mac的VS 2017的建议反馈:
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild2-final" />
从VS保存.csproj时,包将自动恢复
要通过终端运行“dotnet ef”命令,您需要在项目目录中,我的意思是不是从.sln文件所在的目录,而是从较低的级别
注意:Tools.DotNet的v1.0.1中的相同技巧不起作用,我不知道为什么。如果不添加此ItemGroup,则无法添加使用cmd的dbcontext脚手架连接字符串,因此请先在项目(Edit.csproj)中添加它
对于我来说,这解决了macOS上的问题,可以在任何终端上运行:
dotnet工具安装--global dotnet ef
我遇到了类似的问题,并且能够从package manager控制台执行scaffold。在我的例子中,DB是PostgreSQL。他说的是针对Mac的Visual Studio,而不是Visual Studio代码。在Visual Studio for Mac中没有project.json
文件。您好,miha,谢谢您的详细回答。我一开始就会尝试。我仍然遇到问题,但主要是在dotnet cli上。无论如何,谢谢你,如果我知道更多,我会在这里扩展。
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>