scy*_*hia 5 c# macos entity-framework asp.net-core
我最近有了一台 Mac M1,我必须使用 EF 和 SQL Server 在 Asp.net Core 上构建基于微服务的 Web API 应用程序。
我通过 NuGet Package 成功添加了 EntityFrameworkCore(5.0.11)。我的 Mac 上的 sdk 和运行时安装详细信息是:
安装的.NET SDK: - 6.0.101 安装的.NET运行时: - 微软.AspNetCore.App 6.0.1 - 微软.NETCore.App 6.0.1
首先,我无法在 Mac 上安装 SQL Server 2019,但经过搜索后,我找到了一个解决方案,通过在 Docker 上安装 SQL Edge 并连接到 Azure Data Studio,它工作正常。
现在的问题是我无法运行 EFcore 迁移添加初始、通过实体框架更新数据库。我到处搜索,但每当我执行这些命令时,我都会收到以下错误:
构建开始...构建成功。无法找到任何 兼容框架版本框架'Microsoft.AspNetCore.App', 未找到版本“3.1.0”(arm64)。 - 发现以下框架:6.0.1 通过安装指定框架即可解决问题 和/或 SDK。 指定的框架可以在以下位置找到: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=arm64&rid=osx.12-arm64。
我确实安装了上面的框架,但那是x64。而且 EF 命令仍然不起作用,我无法更新数据库。有什么解决办法吗?EFCore 可以在 Mac M1 机器上运行吗?
原因是ef工具暂时无法找到正确的arch。解决方法是强制 ef 工具使用计算机上找到的最新运行时。
export DOTNET_ROLL_FORWARD=LatestMajor
Run Code Online (Sandbox Code Playgroud)
导出上述环境变量并dotnet ef xxx再次运行。
更新
这永久解决了该问题:
dotnet tool uninstall dotnet-ef -g
dotnet tool install dotnet-ef -a arm64 -g
Run Code Online (Sandbox Code Playgroud)
您也可以在本地安装EF工具
CD 到您的源目录并执行以下操作:
dotnet new tool-manifest
dotnet tool install dotnet-ef
Run Code Online (Sandbox Code Playgroud)
这样,它就可以与.Net 5/6 arm64配合使用。
arm64 版本安装程序中存在一个引用 x64 版本 EF Core 的错误。
| 归档时间: |
|
| 查看次数: |
4044 次 |
| 最近记录: |