EF сериализует сущность в json с включенными связанными сущностями, создает цикл - PullRequest
0 голосов
/ 24 мая 2019

Я использую EF в своем проекте WebApi.У меня есть база данных, включающая множество таблиц, которые связаны друг с другом.Когда я сериализую объекты, приходящие из таблиц, это создает странный json.

Мой EF-запрос подобен приведенному ниже.

db.Products.Include(x => x.ProductCategoryRelations)
.Include(x => x.ProductCategoryRelations.Select(c => c.Category))
.Include(x => x.ProductFileRelations)
.Include(x => x.ProductFileRelations.Select(c => c.File))
.Include(x => x.ProductPropertyRelations)
.Include(x => x.ProductPropertyRelations.Select(c => c.Property))
.Include(x => x.ProductColorRelations)
.Include(x => x.ProductColorRelations.Select(c => c.Color))
.Include(x => x.Brand)
.Where(predicate)
.ToListAsync();

Из-за этого EF-запроса.Создается json, как показано ниже, что недопустимо ...

1.Product
    2.Brand
        3.Product
            4.ProductCategoryRelations
                5.Product
                    .....
                    .....
                    .....
                    .....

Как я могу это исправить?Я хотел бы иметь множество продуктов, но я не то, что мне нужно изменить, чтобы получить такой результат.Любая помощь будет оценена.

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

1 Ответ

1 голос
/ 24 мая 2019

Попробуйте этот метод:

db.Products
.Where(predicate)
.Select(p=> new { p.Brand, p.ProductColor.Color_Name, p.ProductCategory.Category_Name })
.ToListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...