c# - Xamarin iOS 上 Entity Framework Core 中的可空值

标签 c# xamarin.ios entity-framework-core

我们正在使用 Xamarin.Forms 开发移动应用,该应用由使用 ASP.NET Core 的 Web 应用提供支持。我们在 Web 和移动应用程序上从数据库加载各种模型,最近我们已经过渡到在 Web 应用程序上使用 EntityFramework Core(将称为 EFCore)。

我们目前正在考虑将移动应用程序转换为也使用 EFCore 以允许我们在应用程序之间共享更多代码,但在 iOS 上遇到了 EFCore 问题。它似乎可以编译运行,并且可以加载简单模型,但无法加载用于指定模型之间可选关系的可空类型。这个人好像有EFCore running in iOS并提供一个 project对于他们的代码。我自己拉动并运行了该项目以检查它是否正常工作,确实如此,但是在向他的简单模型添加了一个可为空的关系之后,它随后无法加载和创建一个项目,并出现此错误:

System.ExecutionEngineException: Attempting to JIT compile method '(wrapper runtime-invoke) :runtime_invoke_void__this___int_byte_byte_byte_byte_byte_object_object_object_object_object_object_object_object_object_object_Nullable1 (object,intptr,intptr,intptr)' while running in aot-only mode. See https://developer.xamarin.com/guides/ios/advanced_topics/limitations/ for more information.

在模拟器上运行不会出现这个错误,只会在设备上出现。

我的问题是,是否有人成功让 Nullables 在 Xamarin iOS 上与 EFCore 一起工作?

非常感谢,威尔。

附言我们愿意更改 EFCore/Xamarin.iOS/Mono 版本来解决问题。

最佳答案

这是一个已知问题。 iOS 对泛型、可空值有一些限制……因为 Apple 不允许在运行时生成代码。

该问题在 Entity Framework 的 github 上被引用:Xamarin iOS : Crash when i add row to table with nullable type or with a lot of columns

在 Xamarin 的 bugzilla 上:Bug 58424 - Xamarin iOS : EF Core crash when I add row to table with nullable type or with a lot of columns

关于c# - Xamarin iOS 上 Entity Framework Core 中的可空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45592816/

相关文章:

c# - 如何以编程方式检测是否安装了 Windows 8.1 更新

c# - C# Monitor.Wait() 是否遭受虚假唤醒?

asp.net-mvc - 用于 MVC 和 ASP.NET CORE Lambda 表达式的 Telerik UI

c# - 将密码传递给 Web 服务并存储它

c# - 如何使用 RX 实现超时序列?

xcode - 如何将 monotouch 代码转换为 xcode

ios - UIPageViewController 第二个 View 变为空白

xamarin - 如何使用 Xamarin IOS 远程模拟器

entity-framework-core - Entity Framework Core - 更改 "__EFMigrationsHistory"表的架构

c# - Dotnet 核心 3.1 版本的 RelationalMetadataExtensions.Relations()