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?
答案 0 :(得分:1)
Windows运行时组件中的EF是不行的;但这并不是那么糟糕,因为WinRT组件可以依赖于类库。因此,将所有EF类移动到自己的类库中,并从Windows运行时组件中的后台任务中使用该库。
通过这样做,您还可以在需要时在前台应用程序中使用相同的类库。
P.S。检查EFCore和UWP的github页面。有许多问题,特别是与.net native相结合。所以在UWP中使用EF.core会让你头痛不已;但这是可能的。