Ошибка циклической ссылки при сериализации объектов в 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)]
ошибки исчезают, но сериализация возвращает идентификатор комментария и игнорирует другие поля.
Любые предложения о том, как решить эту проблему?
Заранее спасибо, Ле
стер