เรากำลังพัฒนาแอปบนมือถือโดยใช้ Xamarin.Forms ซึ่งได้รับการสนับสนุนโดยเว็บแอปโดยใช้ ASP.NET Core เราโหลดโมเดลต่างๆ จากฐานข้อมูลทั้งบนเว็บและแอปบนมือถือ และเมื่อเร็วๆ นี้ เราได้เปลี่ยนไปใช้ EntityFramework Core (จะเรียกว่า EFCore) บนเว็บแอป
ขณะนี้เรากำลังพิจารณาที่จะเปลี่ยนแอพมือถือไปใช้ EFCore เพื่อให้เราสามารถแชร์โค้ดระหว่างแอพได้มากขึ้น แต่ประสบปัญหากับ EFCore บน iOS ดูเหมือนว่าสามารถคอมไพล์และรันได้ และสามารถโหลดโมเดลธรรมดาได้ แต่ล้มเหลวในการโหลดประเภท nullable ซึ่งใช้เพื่อระบุความสัมพันธ์เพิ่มเติมระหว่างโมเดล ดูเหมือนว่าบุคคลนี้จะมี EFCore ทำงานใน iOS และมีโปรเจ็กต์สำหรับโค้ด . ฉันได้ดึงและรันโปรเจ็กต์ด้วยตัวเองเพื่อตรวจสอบว่ามันใช้งานได้ ซึ่งมันได้ผล แต่หลังจากเพิ่มความสัมพันธ์ที่เป็นโมฆะให้กับโมเดลอย่างง่ายของเขา ต่อมาก็ล้มเหลวทั้งในการโหลดและสร้างรายการโดยมีข้อผิดพลาดนี้:
System.ExecutionEngineException: กำลังพยายามคอมไพล์ JIT วิธีการ '(wrapper รันไทม์เรียกใช้) :runtime_inurge_void__this___int_byte_byte_byte_byte_byte_object_object_object_object_object_object_object_object_object_object_Nullable1 (object,intptr,intptr,intptr)' ในขณะที่ทำงานในโหมด aot เท่านั้น ดู https://developer.xamarin.com/guides/ios/advanced_topics/limitations/ สำหรับข้อมูลเพิ่มเติม
ข้อผิดพลาดนี้จะไม่เกิดขึ้นเมื่อทำงานบนเครื่องจำลอง เฉพาะบนอุปกรณ์เท่านั้น
คำถามของฉันคือมีใครประสบความสำเร็จในการทำให้ Nullables ทำงานร่วมกับ EFCore บน Xamarin iOS หรือไม่
ขอบคุณมากวิล
ป.ล. เราเปิดให้เปลี่ยนเวอร์ชัน EFCore/Xamarin.iOS/Mono เพื่อแก้ไขปัญหา