質問: 私たちは、Xamarin.Formsを使ってMobileアプリケーションを開発しています.Xamarin.Formsは、ASP.NET Coreを使用したWebアプリケーションによってサポートされています。 Webとモバイルの両方のアプリケーションのデータベースからさまざまなモデルを読み込み、最近ではWebアプリケーションでEntityFramework Core(EFCoreと呼ばれる)を使用するように移行しました。 私たちは現在、EFCoreを使用してアプリケーション間でより多くのコードを共有できるようにモバイルアプリを移行することを検討していますが、iOS上のEFCoreに問題があります。コンパイルと実行が可能で、単純なモデルをロードできますが、モデル間のオプションの関係を指定するために使用されるNULL可能な型をロードできません。この人は、iOSで動作しているEFCoreを持っていて、そのコードのプロジェクトを提供しています。私は引っ張って、自分が行った作業を確認するためにプロジェクトを実行しましたが、単純なモデルにnull許容関係を追加した後、このエラーで項目をロードして作成することに失敗しました: > System.ExecutionEngineException:コンパイルメソッドをJITしようとしています '(ラッパーランタイム呼び出し):aot-onlyモードで実行中にruntime_invoke_void__this_int_byte_byte_byte_byte_byte_object_object_object_object_object_object_object_object_object_object_Nullable1(オブジェクト、intptr、intptr、intptr)'詳細については、 を参照してください 。 > > このエラーは、シミュレータで実行しているときには発生せず、デバイス上でのみ発生します。 私の質問は、Xamarin iOSでNullablesがEFCoreで動作することに成功した人がいるかどうかです。 多くのありがとう、ウィル PS私たちは、問題を解決するためにEFCore / Xamarin.iOS / Monoバージョンを変更することに門戸を開いています。
回答: これは既知の問題です。 iOSはジェネリック、nullables ...にいくつかの制限を持っています。なぜならAppleは実行時にコード生成を禁止するからです。 この問題は、エンティティフレームワークのgithubで参照されています。Xamarin iOS:null可能な型のテーブルに行を追加するとクラッシュする とXamarinのバグ : BugÂ58424 - XamarinのIOS:EFのコアクラッシュするときに、null可能な型または多くの列を持つテーブルに行を追加する