Ошибка циклической ссылки при сериализации объектов в ASP.NET Web API

я пишу проект Web API в C #, который использует Entity Framework для извлечения данных из БД, их сериализации и отправки клиенту.

Мой проект имеет 2 класса, Post и Comment (внешний ключ от Post).

Это мои занятия.

Почтовый класс:

public partial class Post
{
    public Post()
    {
        this.Attachment = new HashSet();
        this.Comment = new HashSet();
    }

    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public System.DateTime Created { get; set; }
    public Nullable Modified { get; set; }

    public virtual ICollection Attachment { get; set; }
    public virtual ICollection Comment { get; set; }
}

Класс комментариев:

public partial class Comment
{
    public int CommentId { get; set; }
    public string Content { get; set; }
    public System.DateTime Posted { get; set; }
    public bool Approved { get; set; }
    public int AnswersTo { get; set; }
    public int PostId { get; set; }

    public virtual Post Post { get; set; }
}

Моя проблема в том, что, когда я пытаюсь получить через Web API сообщение, он выдает мне следующую ошибку:

Object graph for type 'APIServer.Models.Comment' contains cycles and cannot be serialized if reference tracking is disabled.

И когда я пытаюсь получить комментарий через веб-API, ошибка выглядит следующим образом:

Object graph for type 'System.Collections.Generic.HashSet`1[[APIServer.Models.Comment, APIServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'  contains cycles and cannot be serialized if reference tracking is disabled.

Если я аннотирую класс Comment с

[DataContract(IsReference = true)]

ошибки исчезают, но сериализация возвращает идентификатор комментария и игнорирует другие поля.

Любые предложения о том, как решить эту проблему?

Заранее спасибо, Ле

стер

Ответы на вопрос(2)

Ваш ответ на вопрос