有没有一种方法可以在.NET Framework 4.8上通过CLI使用EF迁移



所以,基本上,我试图在EF 6.0上创建我的第一个应用程序/后端系统,但由于命名法的原因,我开始混淆.NET和.NET框架,从外观上看,我并不是唯一一个造成一堆问题的人。

我先做代码,我希望我的模型能自动转换成azure sql数据库上的sql表,但在尝试运行添加迁移后,他抱怨首先需要一个配置文件,所以我决定通过cli全局安装ef,而不是金块控制台管理器,然后运行dotnet ef迁移脚本-我但它抱怨涉及";GetEFProjectMetadata";。在谷歌上搜索之后,所有的迁移似乎都使用了.net core 6.0

那么,我需要再次将我的整个项目迁移到.net核心6.0吗?或者有没有办法使用.net框架6.0?

如果问题来得很匆忙,或者我没有提供足够的详细信息,我很抱歉,因为我主要在linux中工作,而且我的系统是我的母语,所以翻译可能会有点耗时,或者不会是1:1的错误消息

编辑:

这是我所指的错误:

(*drive path up to user*)OneDriveDocumentsVisual Studio 2022ProjectsMakrBackend(solution root, it was refactored to Makr-Backend once though strangely it didn't change the actual folder name)Makr-Backend(project)objMakr-Backend.csproj.EntityFrameworkCore.targets(4,5): error MSB4006: Há uma dependência circular no elemento gráfico de dependência circular de destino envolvendo o destino "GetEFProjectMetadata". [(*drive path up to user*)OneDriveDocumentsVisual Studio 2022ProjectsMakrBackendMakr-BackendMakr-Backend.csproj]
Unable to retrieve project metadata. Ensure it's an SDK-style project. If you're using a custom BaseIntermediateOutputPath or MSBuildProjectExtensionsPath values, Use the --msbuildprojectextensionspath option.

为了在我的机器中复制它,我只去展示->终端,它显然打开了一个我在其中编写dotnet ef迁移添加InitDB的嵌入式电源外壳dotnet是在全球范围内安装的,编写dotnet ef会用一些独角兽的简单ascii hart回复我,以及一些通用的帮助建议和论点信息

如前所述,由于我无法使用实体框架,该解决方案被删除了好几次,最近的一次尝试是,由于担心数据持久性,我决定不使用hypen(Makr Backend(。因此,在项目后期,我将该解决方案重命名为Makr Backend,并创建了一个同名的新项目,虽然我删除了没有连字符的项目,但我知道他仍然存在于根目录中,尽管我无意中让shure im不处理该文件夹,但我没有将其从系统中删除的唯一原因是它包含了我打算用作数据库模型的图

另一个Edit显然是实体框架和实体框架核心是完全不同的东西,我终于成功地完成了我想要做的事情,将项目迁移到.net核心,并专门使用了一个实体框架核心,我终于填充了我的azure数据库

"dotnet ef";是实体框架核心的cli工具。不要将其与实体框架混淆

您不一定需要将应用程序升级到.NET 6您可以查看支持版本的实体框架核心文档。

此外,我相信这篇文章将帮助你更好地理解命名。

最新更新