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
Lepaskan: 2025-01-30 06:51:09
asal
267 orang telah melayarinya

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>
Salin selepas log masuk
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
JsonConvert.SerializeObject(YourPOCOHere, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize });
Salin selepas log masuk
untuk mengelakkan

: PreserveReferencesHandling.Objects StackOverflowException

JsonConvert.SerializeObject(YourPOCOHere, Formatting.Indented, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects });
Salin selepas log masuk
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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan