无法使EF.SQLite集成在UWP应用程序

时间:2018-01-12 15:10:54

标签: c# entity-framework sqlite uwp

我有一个针对Fall Creators Update的UWP应用程序。我一直在herehere关注本教程。

每当我执行Add-Migration时,我都会收到错误

  

启动项目' UEX.Apps.Enforce.UWP'是一个通用Windows平台应用程序。此版本的Entity Framework核心软件包管理器控制台工具不支持此类项目。有关将EF Core Tools与UWP项目一起使用的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=858496

我在这里不知所措。这似乎根本不起作用。

我尝试了什么:使用Fall Creators Update设置全新的Windows 10 VM。安装VS2017的新副本。将项目复制到新计算机。仍然给我同样的错误。

我发现很难隔离代码,因为它只是基本的实体框架初始化代码。我认为错误存在于元信息中。正如我尝试使用新的VS2017安装一样,我不会想到它是关于混乱的包装或任何东西。

我已将项目简化为项目文件和上下文以及一个实体。我在这里上传了它:

  

https://1drv.ms/u/s!AqqIr8PxNnQDjMU92f5cWkhQpeD-GQ

编辑:根据Nico Zhus的回答,我已逐步跟踪the tutorial并将我的模型类放入单独的.net Standard class library。我编辑了项目文件并添加了EF引用。但是,本教程中缺少一个步骤,详细说明了如何从UWP项目中实际引用模型代码,因为未提及添加实际引用。我尝试通过右键单击Add reference菜单添加引用,选择.net standard class library,但出现错误。

  

无法添加对项目< ...>

的引用

我还将类库设置为我的启动项目,执行Add-Migration命令,并且它不会抛出任何异常,但它也不会添加我期望的迁移文件。没有任何事情发生。

编辑2

根据我改变了Nico Zhus评论,我将TargetFramework的项目文件的.net standard class library属性更改回原来的状态,现在我可以从我的class library引用UWP项目。但是,我仍然无法在我的模型项目上执行Add-Migration

  

启动项目'我的项目'目标框架' .NETStandard'。没有与此框架关联的运行时,并且无法直接执行以其为目标的项目。要将Entity Framework核心软件包管理器控制台工具与此项目一起使用,请添加一个针对引用此项目的.NET Framework或.NET Core的可执行项目,并将其设置为启动项目;或者,更新此项目以跨目标.NET Framework或.NET Core。

1 个答案:

答案 0 :(得分:1)

  

启动项目' UEX.Apps.Enforce.UWP'是一个通用Windows平台应用程序。此版本的Entity Framework核心软件包管理器控制台工具不支持此类项目。有关将EF Core Tools与UWP项目一起使用的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=858496

根据Getting Started with EF Core on Universal Windows Platform (UWP) with a New Database,您需要为您的UWP应用创建一个新的模型项目(类库(.NET标准))。在执行工具命令(Add-Migration MyFirstMigration)之前,需要选择模型项目作为默认项目,并将其设置为源中的启动项目。 enter image description here

<强>更新

在执行工具命令之前,需要将以下内容放在Model项目的csproj文件中:

<PropertyGroup>
 <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>

如果您已成功添加迁移文件,则可以更改TargetFramework以确保UWP项目可以引用它。

<TargetFrameworks>netstandard2.0</TargetFrameworks>