0

Voici ma situation. J'utilise Entity Framework 4 avec l'API WebEntity Framework + API Web, retour entités (complexe, collections, etc) en dehors de DbContext

La structure de mon code est assez simple, j'ai la couche Service où toutes mes API repos sont organisées, j'ai ma couche logique métier où j'ai des contrôleurs métier à gérer. le reste appelle et la couche de données. Enfin, j'ai une couche de données avec dépôts génériques et un DAO pour accéder à l'ensemble.

Dans mes contrôleurs Business, j'utilise l'injection pour injecter un DbContext non transactionnel (méthodes en lecture seule) ou transactionnel (méthodes CRUD).

Lorsque je renvoie des valeurs dans mon API REST, je l'analyse dans JSON.

Le problème est que je continue à avoir cette exception: Newtonsoft.Json.JsonSerializationException

Je retourne mes entités/collections/listes en dehors de ma déclaration en utilisant {}, que je pense que EF n'aime pas par défaut . En mode débogage, parfois, je parviendrai à récupérer toutes les données, mais pas tout le temps. Puisque mes entités proviennent d'une requête dans un contexte DbContext, je pense que le comportement consiste à supprimer les sous-propriétés chargées après que le contexte a été éliminé.

Le fait est, je veux garder ma structure, et je me demandais ce qui suit:

Est-il possible de retourner des entités complètes (non chargées paresseux) après avoir quitté l'instruction using {}?

Merci beaucoup

+0

Après l'instruction using, le DBContext a été fermé, donc vous ne pouvez rien faire contre cela sans lancer une exception. –

+0

Obtenez-vous plus d'informations de la JsonSerializationException? Par exemple, si vos entités se réfèrent mutuellement, pourriez-vous entrer dans une boucle infinie pendant la sérialisation? –

Répondre

0

En fait, je en savoir plus sur le comportement des cadres des entités. Ce que je reçois est en fait standard pour EF. Je dois forcer le contexte à Load() mes entités référencées afin de les obtenir après avoir quitté le contexte.