Soalan:
Ralat rujukan bulat berlaku semasa mensiri objek jenis SubSonic.Schema.DatabaseColumn. Hasil JSON tidak dapat dikembalikan dengan jayanya, mengakibatkan ralat HTTP 500.
Pelaksanaan:
Kod yang disediakan cuba mensirikan objek Acara menggunakan kaedah Carinya:
<code>var data = Event.Find(x => x.ID != 0); return Json(data);</code>
Walau bagaimanapun, disebabkan graf objek kompleks dalam kelas Acara, kaedah ini mungkin menghadapi rujukan bulat.
Sebab:
Ralat rujukan bulatan disebabkan oleh kewujudan hubungan rekursif dalam kelas Acara. Ini bermakna objek itu mengandungi rujukan kepada dirinya sendiri atau objek lain yang akhirnya merujuk semula kepadanya.
Penyelesaian:
Untuk menyelesaikan ralat ini, anda perlu memecahkan kitaran rujukan dengan memilih hanya sifat yang diperlukan dalam paparan. Ini boleh dilakukan menggunakan:
<code>return Json(new { PropertyINeed1 = data.PropertyINeed1, PropertyINeed2 = data.PropertyINeed2 });</code>
Dengan menyatakan sifat tertentu, anda mencipta objek baharu yang mengandungi hanya maklumat yang diperlukan tanpa rujukan bulat. Pendekatan ini mengurangkan kerumitan objek JSON dan memastikan siri yang berjaya.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Rujukan Pekeliling Semasa Pensirilan JSON bagi Objek SubSonic.Schema.DatabaseColumn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!