2010-01-21 6 views

Répondre

13

Lorsque j'ai besoin de sérialiser, je projette généralement sur d'autres types. Cela élimine les références circulaires, ainsi que d'autres données que je ne veux pas sérialiser. Par exemple:

var q = (from c in Repository.Customers() 
     where c.Id == id 
     select new 
     { 
      Name = c.Name, 
      Orders = from o in C.Orders 
         select new 
         { 
          Date = o.Date 
         } 
     }).First(); 
return Json(q); 
5

Lorsque vous créez une association dans le concepteur de modèle (clic droit Ajouter-> Association) vous obtiendrez une fenêtre pop-up qui ressemble à ceci:

Add association window http://i45.tinypic.com/xmoqcp.jpg

Remarquez les cases à cocher de la propriété de navigation, vous pouvez désélectionnez-les si vous ne voulez pas qu'ils soient générés. Pour résoudre votre problème de référence circulaire, assurez-vous qu'un seul ou aucun n'est vérifié, pas les deux.

+0

Désolé, je c Ne rattrape pas ce que tu as dit. Pouvez-vous le mettre plus précis? Merci! – Roy

+0

Mise à jour avec capture d'écran – Charlie

+0

Merci Charlie, mais je ne peux pas voir la photo. Et mon concepteur n'a pas de case à cocher dessus. :(J'utilise Visual Studio 2008. – Roy

5

J'ai résolu ce problème dans EF 3.5 en modifiant la propriété de navigation de l'enfant Getter de publique à interne.

+0

Merci, cela a fonctionné pour moi.Pas tout à fait sûr si c'est la bonne façon de le faire si! –

1

Sur serverlevel:

[DataContract(IsReference = true)] 

MSDN

+0

Cela a fonctionné pour moi – Rich

0

Voir cette page J'espère que je pourrais faire pour survivre
http://msdn.microsoft.com/en-us/data/jj574232.aspx

+3

Notez que [seules les réponses de lien sont disco uraged] (http://meta.stackoverflow.com/tags/link-only-answers/info), les réponses SO devraient être l'aboutissement d'une recherche de solution (vs. encore une autre escale de références, qui ont tendance à se figer au fil du temps). S'il vous plaît envisager d'ajouter un synopsis autonome ici, en gardant le lien comme référence. – kleopatra

0

Le getter changeant interne pour une navigation enfant a travaillé pour moi avec entitfy framework v5/v6 sous Web API v2

+0

il a corrigé l'aide de l'API web mais a tué la sérialisation – marcusdev

Questions connexes