使用JSON.Net 防止自引用循環異常
將Route 物件清單從資料服務傳輸到ASP.Net MVC 視圖中,您遇到了「偵測到自引用循環」異常。雖然使用ReferenceLoopHandling.Ignore抑制異常可以暫時消除錯誤,但它並不能解決清單未傳遞到視圖的問題。
異常的根本原因在於固有的自引用結構存在於您的資料模型中。諸如“路線”和“地段”之類的實體可以保持彼此之間的關係,從而創建循環引用。當 JSON.Net 嘗試序列化此類結構時,它可能會陷入無限循環,從而導致異常。
為了防止此問題並啟用清單的無縫序列化,有必要停用自動追蹤資料上下文中的實體和代理程式建立。在 DbContext 類別的建構函式中,新增以下行:
this.Configuration.LazyLoadingEnabled = false; this.Configuration.ProxyCreationEnabled = false;
這些設定將指示實體框架立即載入實體並避免建立代理對象,從而有效地打破循環參考並防止異常。因此,JSON.Net 將能夠成功序列化您的清單並將資料傳輸到您的視圖。
以上是使用 JSON.Net 序列化資料時如何防止「偵測到自引用循環」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!