Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menyelesaikan kesilapan 'rujukan diri yang dikesan' kesilapan apabila menyatukan rangka kerja entiti POCO objek dengan json.net?

Bagaimana untuk menyelesaikan kesilapan 'rujukan diri yang dikesan' kesilapan apabila menyatukan rangka kerja entiti POCO objek dengan json.net?

DDD
DDDasal
2025-01-30 06:51:09205semak imbas

How to Resolve

menyelesaikan "json.net ralat: gelung rujukan diri dikesan"

Serializing Objek CLR lama (POCOS) dari Model Data Entiti (.edmx) Menggunakan

kadang -kadang boleh membuang kesilapan ini: JsonConvert.SerializeObject

<code>Error: Self referencing loop detected for type System.data.entity occurs.</code>
Ini berlaku kerana kelas entiti Rangka Kerja Entiti sering mempunyai hubungan rujukan sendiri. Penyelesaiannya terletak pada menggunakan

untuk mengawal tingkah laku siri. JsonSerializerSettings

Menggunakan jSonserializersettings

menawarkan beberapa pilihan untuk mengendalikan rujukan bulat: JsonSerializerSettings

  • (lalai): melemparkan pengecualian (ralat yang anda lihat). ReferenceLoopHandling.Error
  • : bersiri objek bersarang, tetapi boleh membawa kepada gelung tak terhingga dengan struktur yang sangat bersarang. Berguna untuk objek dengan hubungan tetapi tidak bersarang tak terhingga. ReferenceLoopHandling.Serialize
  • : melangkaui siri objek yang merujuk diri. ReferenceLoopHandling.Ignore
Melaksanakan jSonserializersettings

inilah cara menerapkan tetapan ini:

untuk objek dengan bersarang terhingga, gunakan

:

ReferenceLoopHandling.Serialize

untuk objek dengan bersarang yang tidak terhingga, gunakan
<code class="language-csharp">JsonConvert.SerializeObject(YourPOCOHere, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize });</code>
untuk mengelakkan

: PreserveReferencesHandling.Objects StackOverflowException

<code class="language-csharp">JsonConvert.SerializeObject(YourPOCOHere, Formatting.Indented, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects });</code>
memilih tetapan yang betul

Tetapan terbaik bergantung pada struktur POCO anda. Berhati-hati mempertimbangkan hubungan dalam data anda untuk memilih pilihan yang paling sesuai dan mengelakkan ralat gelung rujukan diri semasa siri JSON.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kesilapan 'rujukan diri yang dikesan' kesilapan apabila menyatukan rangka kerja entiti POCO objek dengan json.net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn