Bonjour,

Je rencontre un problème qui me laisse un peu perplexe : impossible de serialiser une entité dès lors qu'un clé étrangère existe. J'explique :

J'ai un EDMX (Database first, la base est déjà créée et exploitée), dont je veux retourner des données par un asmx au sein d'une appli (appli interne, la question de la sécurité ne se pose pas) :

Nom : Capture d’écran 2023-10-09 153911.png
Affichages : 104
Taille : 12,4 Ko


et j'ai un appel des plus simples :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
[WebMethod(EnableSession = true)]
 
 
 public Applicatif GetProjet(long id)
        {
            Applicatif cret = null;
            using (RessourcesDevEntities bdd = new RessourcesDevEntities())
            {
                bdd.Configuration.LazyLoadingEnabled = false;
 
 
                cret = bdd.Applicatif.FirstOrDefault(_d => _d.id == id);
            }
            return cret;
        }
Cet appel se fait depuis un script javascript en AJAX, donc la réponse sera du JSON


Si j'interroge mon service web (en allant à son url, par exemple), j'ai cette erreur :

(or il ne s'agit pas d'une interface, mais d'une class)

et plus loin :

Une erreur s'est produite lors de la réflexion du type 'DevRessources.Database_2.Applicatif'

J'ai désactivé le chargement différé (ce qui de ma compréhension correspond à la ligne : bdd.Configuration.LazyLoadingEnabled = false;









Mais rien n'y fait. Je peux supprimer les relations dans mon edmx, dont je n'ai pas forcément nécessité, elles reviennent aussi sec dès que je mets à jour mon edmx .

J'ai bien compris le fond du problème : Applicatif fait référence à Documents, et vice versa, ce qui cause une référence circulaire.

(les exemples ci-dessus sont simplifiés, bien-sûr)

Donc mes questions :

- Qu'est-ce qui m'échappe ?
- Comment résoudre ce problème ?


Merci d'avance pour vos réponses.