0

Visual Studio提供"Background Application (IoT)" template我想用它来创建无头 webservice。为了保留一些数据,我想使用Entity Framework with SQLite作为DB-Engine。实体框架与物联网背景应用

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

PM>添加迁移MyFirstMigration

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

我认为这不是EF本身的问题,因为它适用于我的简单的“空白应用程序”。现在出现了一些问题:“后台应用程序”是否真的是WinRT组件,并且EF有不同的(不受支持的)处理方式?

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

回答

1

在Windows运行时组件中的EF是不合适的;但这并不坏,因为WinRT组件可以依赖于类库。因此,将所有EF类移至自己的类库,并从Windows运行时组件中的后台任务中使用该库。

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

P.s.检查EFCore和UWP的github页面。有很多问题,特别是与.net本地结合。所以在UWP中使用EF.core会导致很多头痛;但它是可能的。

+0

我试过你的建议:在我的背景应用程序旁边,我创建了一个(通用)类库。 PM>添加迁移MyFirstMigration 启动项目'LedManager'是Windows运行时组件。实体框架核心软件包管理器控制台工具不支持这种类型的项目。 – TimBoss

+1

做一个正常的应用程序项目,只是在类库中生成迁移? –

+0

就在这一刻,我试了一下: https://github.com/aspnet/EntityFramework/issues/6098 (你刚才说的),它对我很有用。该解决方案现在包含三个项目:一个虚拟UWP-App,一个用于持久性的类库和一个后台应用程序项目。 – TimBoss