Automapper игнорирует дочернее свойство в объекте коллекции - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть модели статей и категорий, которые связаны между собой:

public class Article
{
    ...

    public Category Category { get; set; }
}

 public class Category
 {
     ...

     public ICollection<Article> Articles { get; set; }
 }

Это их ModelViews:

public class ArticleViewModel
{
    ...

    public CategoryViewModel Category { get; set; }
}

public class CategoryViewModel
{
    ...

    public ICollection<ArticleViewModel> Articles { get; set; }
}

А это Automapper:

CreateMap<Article, ArticleViewModel>()
.ReverseMap();

Код работает с этой ошибкой:

Newtonsoft.Json.JsonSerializationException: Self referencing loop detected with type 'ArticleViewModel'. Path 'category.articles'.

Как можно игнорировать коллекцию Category.Articles в AutoMapper при получении статьи?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете попробовать с этим кодом

var deserializeSettings = new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Replace };

            return JsonConvert.DeserializeObject</*your type*/>(JsonConvert.SerializeObject(/*your source*/, Formatting.None, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), deserializeSettings);
...