@Saharman

Зацикливание при загрузке связанной сущности, как исправить?

Есть два вот таких класса:
public class A
    {
        [Required]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string Description { get; set; }

        public List<B> B { get; set; }

        public List<C> C { get; set; }

        public A()
        {
            B = new List<B>();
            C = new List<C>();
        }
    }

public class B
    {
        [Required]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string Description { get; set; }

        public List<D> D { get; set; }

        public List<E> E { get; set; }
        [Required]
        public int AId { get; set; }
        
        public A A { get; set; }

        public B()
        {
            D = new List<D>();
            E = new List<E>();
        }

    }

Использую вот такую подгрузку:
A a = await _context.A
                    .Include(d => d.B).Include(d => d.C)
                    .FirstAsync(d => d.Id == id);

При возврате полученного значения, получаю зацикливание, т.е. класс A подгружает класс B, а класс B в свою очередь опять подгружает A, а A опять B и тд.
Вот пример результата:
{
  "code": 0,
  "error": null,
  "data": {
    "id": 2,
    "name": "abc",
    "description": "The",
    "B": [
      {
        "id": 2,
        "name": "ABC",
        "description": "The",
        "D": null,
        "E": null,
        "AId": 2,
        "A": {
          "id": 2,
          "name": "abc",
          "description": "The",
          "B": [
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kttotto
пофиг на чем писать
Попробуй вместо Include использовать Load
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы