我正在评估 Xamarin 的一个新项目,该项目将针对不同的平台(iOS、Android、UWP)。
当我将 NuGet 包添加到我的 PCL 项目时,出现以下错误:
安装程序包“Microsoft.EntityFrameworkCore 1.0.1”不可能。您在项目中安装了一个软件包“.NETPortable,Version=v4.5,Profile=Profile111”,可将软件包内容包含在内容中或参考与组件兼容的基础设施中。
所以我猜 Xamarin 不支持 EF Core。
提前非常感谢
这是 EF 团队当前的行动项目:
https://github.com/aspnet/EntityFramework/issues/4269
截至 10 天前,有一个任务来查看是否支持:
https://github.com/aspnet/EntityFramework/issues/4269#issuecomment-256133319
既然 Xamarin 支持 netstandard,我们将进行另一轮测试,看看我们是否准备好让 Xamarin 成为我们支持的场景之一。一旦我们了解了这一点,我们就可以调用它是否支持 1.1。我将首先移植我在 beta5 天内完成的示例应用程序。
一段时间以来,我也对 Xamarin.iOS 上的 EF Core 感兴趣,并一直在监控各个项目的进度。现在有个好消息:
最近,修复了一个拦截器错误(
NotImplementedException
是由iOS上的查询引起的)。该错误已由新 Mono 5.0 版本上的 Xamarin.iOS 10.10+ 解决。引用github问题:
从那时起,我就能够改编 Jon Douglas 的 Xamarin.Android EF Core 示例(请参阅divega评论: 我们正在解决这个问题,因为我们认为根本原因是 在较新版本的 Xamarin iOS 中已删除。也就是说,支持 Xamarin 仍被认为是一项正在进行的工作。请参阅 在
#4269(评论)寻求帮助,并为任何问题创建新问题 您发现的问题。
此处)以在 iOS 上运行,此处。
今天我改编了Xamarin.Forms“Todo”示例应用程序,它使用 SQLite.Net PCL 来代替 EF Core。适用于所有 3 个平台。请参阅我的改编此处。我还在 Xamarin 论坛中发布了相关内容。
目前我正在使用
SQLite.Net-PCL,这是一个非常流行的生产就绪解决方案。