带有 UWP 的 EF Core - Visual Studio 19

Posted

技术标签:

【中文标题】带有 UWP 的 EF Core - Visual Studio 19【英文标题】:EF Core with UWP - Visual Studio 19 【发布时间】:2021-08-28 21:11:41 【问题描述】:

我正在使用 Visual Studio 19 以及我在 so 和其他地方找到的所有问题,或者是旧版本和其他版本。

我正在使用带有 SQLite 和 UWP 的 Entity Framework Core。

我该怎么做?

我有一个针对 .net 标准 2.0 的 c# 控制台应用程序。

这是包含我的数据库上下文和表的项目。另外,我不能使用迁移,因为它是 .net 标准,而不是 .net 核心或 .net 框架。

谢谢!

附:如果您需要更多信息,请告诉我。如果需要,我还可以提供错误详细信息!

【问题讨论】:

【参考方案1】:

由于 EF Core 和 uwp 应用程序都依赖并支持 .NET Standard 2.0,因此 EF Core 可以在 UWP 中使用。您可以参考official document 了解如何在 uwp 应用中使用迁移。

通常,您需要创建.net 标准类库并为其添加一些模型。然后,您可以为 uwp 应用程序添加对该库的引用。 请将库设置为启动项,然后您可以在包管理器控制台中输入以下命令。

  Add-Migration Init

Init 是此迁移的名称。之后可以看到项目中生成了一个Migrations文件夹,里面包含了代表每个Migration的类文件,这些类文件继承自Migration类。

在 uwp 应用中使用迁移:

using (var db = new BloggingContext())
        
            db.Database.Migrate();
        

注意:要执行迁移命令,库项目必须是启动项,因为当前版本的 EF Core Tools 不支持 UWP 项目。

【讨论】:

添加引用是什么意思?我只是添加DLL文件吗?谢谢! 我正在尝试进行迁移。我不断收到此错误:Startup project 'SQLite' targets framework '.NETStandard'. There is no runtime associated with this framework, and projects targeting it cannot be executed directly. To use the Entity Framework Core Package Manager Console Tools with this project, add an executable project targeting .NET Framework or .NET Core that references this project, and set it as the startup project; or, update this project to cross-target .NET Framework or .NET Core. 我该怎么办?谢谢! 您可以尝试编辑库项目文件,如<TargetFrameworks> netcoreapp2.0;netstandard2.0 </TargetFrameworks> 谢谢,但 ef core 5 不支持 .net 标准 5(最新)...我必须使用 2.1 或 3.1。还有什么我可以做的吗?我想使用 uwp 和 ef 核心。方法无关紧要。 你是对的。目前,UWP平台不能使用EF Core 5.0,UWP对.Net Standard 2.1的支持还有待确定。推荐使用 EF Core 3.1 版本。

以上是关于带有 UWP 的 EF Core - Visual Studio 19的主要内容,如果未能解决你的问题,请参考以下文章

EF Core 5 与 Visual Studio for Mac

带有 EF Core / ASP.NET Core 的 OData - 好还是坏?

如何在 Visual Studio 2017 中执行 Xamarin.uwp

带有 EF Core 的 ASP.NET Core - DTO 集合映射

带有 GraphQL 的 EF Core

带有 .NET EF Core 的内存缓存抛出错误