Я manay-ко-многим между двумя сущностями: Категории < -> ПредметыEF - как предотвратить жадную загрузку, чтобы загрузить все вложенные объекты
public class CategoryMaster
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual List<SubCategoryMaster> SubCategories { get; set; }
public List<ItemMaster> Items { get; set; }
}
public class ItemMaster
{
public long Id { get; set; }
public string Name { get; set; }
public List<CategoryMaster> Categories { get; set; }
}
Всякий раз, когда я пытаюсь явных связанных нагрузочных элементов в все/некоторые категории, это дает мне
- всех связанных элементов
- связанные категории для этих элементов
элементов, связанных с теми са рубрикатор и так далее ... вложенные/циклические ссылки
db.CategoryMaster .Include(x=>x.Items) .Include(x=>x.SubCategories.Select(y=>y.Items)) .ToList();
Следовательно приводит ниже ошибки при сериализации в JSON на * .cshtml с Json.Encode();
A circular reference was detected while serializing an object of type 'GoGreen.Data.Entities.SubCategoryMaster'.
Так как я отключил отложенной загрузки на уровне собственности, я не ожидал, что это загрузит все вложенные объекты (циклические ссылки) в любой момент времени. Есть ли способ загрузить все связанные записи уровня один, т. Е. Категории и связанные элементы.
Related question - Но Iodon't не хочет идти ни с одним из предложенных способов.
ПРИМЕЧАНИЕ: Меня больше интересует, почему EF ведет себя так. Кажется, это ошибка.
проверьте ответ и скажите мне, помогло ли это вам или нет. –
Вы должны заменить JSon сериалайзер на Json.NET и установить обработку опорного контура. –