Exception JSON.Net « Boucle d'auto-référencement détectée »
L'exception « Boucle d'auto-référencement détectée » dans JSON.Net se produit lorsqu'il y a une référence circulaire dans les données en cours de sérialisation. Dans le code fourni, cette exception est rencontrée lors de la tentative de sérialisation d'une liste d'objets Route en raison d'une boucle dans le graphique d'objets.
Détails de l'exception
Le message d'exception indique qu'une boucle d'auto-référencement a été détectée dans l'entité PartNumber. Plus précisément, le chemin "routes[0].incomingLots[0].partNumber.partType.partNumbers" contient une boucle, ce qui signifie que la représentation JSON de la liste de routes contiendrait des références à elle-même.
Solution
Pour résoudre ce problème et empêcher la boucle, modifiez le constructeur de classe DbContext pour désactiver le chargement différé et le proxy. création :
public YourDbContext() : base("name = YourDbContext") { // Disable lazy loading and proxy creation this.Configuration.LazyLoadingEnabled = false; this.Configuration.ProxyCreationEnabled = false; }
En faisant cela, vous demandez à DbContext de ne pas charger automatiquement les entités associées et de créer des proxys pour elles. Cela brisera la référence circulaire et permettra à la liste des routes d'être sérialisée avec succès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!