L'auto référencement boucle détecté - récupérer des données à partir de WebApi pour le navigateur

Je suis en utilisant Entity Framework et ayant un problème avec l'obtention de parent et de l'enfant données dans le navigateur. Voici mes classes:

 public class Question
 {
    public int QuestionId { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Answer> Answers { get; set; }
}

public class Answer
{
    public int AnswerId { get; set; }
    public string Text { get; set; }
    public int QuestionId { get; set; }
    public virtual Question Question { get; set; }
}

J'utilise le code suivant pour retourner la question et la réponse de données:

    public IList<Question> GetQuestions(int subTopicId, int questionStatusId)
    {
        var questions = _questionsRepository.GetAll()
            .Where(a => a.SubTopicId == subTopicId &&
                   (questionStatusId == 99 ||
                    a.QuestionStatusId == questionStatusId))
            .Include(a => a.Answers)
            .ToList();
        return questions; 
    }

Sur le C#, côté cela semble fonctionner, cependant je remarque que la réponse objets ont des références de la question. Lorsque j'utilise la WebAPI pour obtenir les données dans le navigateur j'obtiens le message suivant:

Le "ObjectContent`1' type échoué à sérialiser le corps de la réponse pour le type de contenu application/json; charset=utf-8'.

Auto référencement boucle détecté pour les biens à la "question", avec le " type de Modèles.De base.Question".

Est-ce parce que la Question n'a de Réponses et les Réponses ont un renvoi à la Question? Tous les endroits que j'ai regardé vous suggérons de faire une référence à la mère de l'enfant donc je ne sais pas quoi faire. Quelqu'un peut-il me donner quelques conseils sur ce.

  • Utilisation Dto pour votre site web api, en évitant le retour de l'Entité, directement dans votre reaponse
  • Qu'est-ce que Dto? L'ensemble de notre application utilise EF, nous sommes en utilisant AngularJS sur le client, et nous n'avons pas de problèmes autres que pour ce seul cas.
  • Ce que je voulais dire, vous devez définir votre Dto pour votre site Web Api, Dto est une sorte de semblable avec ViewModel dans MVC. Dto est comme un wrapper o votre modèle EF de fournir des données de votre client (angularjs).
  • double possible de JSON.NET Erreur de l'Auto référencement boucle détecté pour le type
  • Vous pourriez avoir un coup d'oeil à ma réponse concernant “l'Auto Référencement Boucle de détection d'exception avec JSON.Net de la page.
InformationsquelleAutor | 2013-06-26