具有物联网背景应用的实体框架

时间:2016-12-30 22:43:01

标签: windows-runtime uwp entity-framework-core windows-10-iot-core

Visual Studio提供了"Background Application (IoT)" template ,我想用它来创建无头 Web服务。要保留一些数据,我想使用Entity Framework with SQLite作为DB-Engine。

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

  

PM>添加迁移MyFirstMigration

     

Project' BackgroundApplication4'是一个Windows运行时组件。实体框架核心包管理器控制台工具不支持此类项目。

我认为这不是EF本身的问题,因为它适用于我的一个简单的空白应用程序"。现在有一些问题出现了:"背景应用"真的是一个WinRT组件,EF有不同的(不支持的)处理吗?

我认为UWP是extension of WinRT所以基本上每个UWP-App都必须是WinRT-Component?

1 个答案:

答案 0 :(得分:1)

Windows运行时组件中的EF是不行的;但这并不是那么糟糕,因为WinRT组件可以依赖于类库。因此,将所有EF类移动到自己的类库中,并从Windows运行时组件中的后台任务中使用该库。

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

P.S。检查EFCore和UWP的github页面。有许多问题,特别是与.net native相结合。所以在UWP中使用EF.core会让你头痛不已;但这是可能的。