Entity Framework 具有物联网后台应用

Entity Framework with IoT Background Application

Visual Studio 提供了一个 "Background Application (IoT)" template which i want to use to create a headless webservice. To persist some data i want to use Entity Framework with SQLite 作为数据库引擎。

将 UWP 升级到 5.2.2 并安装 Sqlite 和 EFCore.Tools 并添加 DbContext 后,我​​想迁移第一个版本。失败:

PM> Add-Migration MyFirstMigration

Project 'BackgroundApplication4' is a Windows Runtime component. The Entity Framework Core Package Manager Console Tools don't support this type of project.

我认为这不是 EF 本身的问题,因为它对我来说很简单 "Blank App"。现在出现了一些问题:"Background Application" 真的是一个 WinRT 组件并且由 EF 进行不同的(不受支持的)处理吗?

我认为 UWP 是一个 所以基本上每个 UWP 应用程序都必须是一个 WinRT 组件?

Windows 运行时组件中的 EF 是不行的;但这还不错,因为 WinRT 组件可以依赖 class 个库。因此,将所有 EF classes 移动到自己的 class 库,并在 Windows 运行时组件中从后台任务中使用该库。

通过这样做,您还可以在需要时在前台应用程序中使用相同的 class 库。

P.s。检查 EFCore 和 UWP 的 github 页面。有很多问题,尤其是与 .net native 结合使用时。所以在 UWP 中使用 EF.core 会让你很头疼;但这是可能的。