I했습니다 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; }
}
나는 명시 적 부하 관련 항목하려고 할 때마다 모든/특정 범주는 해당 항목에 나에게 그 캘리포니아에
관련 항목을
- 모든 관련 항목
- 관련 카테고리를 제공합니다 tegories 등등 ... 중첩/순환 참조
db.CategoryMaster .Include(x=>x.Items) .Include(x=>x.SubCategories.Select(y=>y.Items)) .ToList();
) (Json.Encode와 *의 .cshtml에 JSON으로 직렬화 동안 그러므로 아래에 오류가 발생
;A circular reference was detected while serializing an object of type 'GoGreen.Data.Entities.SubCategoryMaster'.
나는 속성 수준에서 게으른 로딩, 나는 그것이 시간의 시점에서 모든 하위 항목 (순환 참조를)로드 기대하고 있지 않다 장애인했습니다 때문에. 관련된 모든 레벨 1 기록 즉 카테고리 및 관련 항목을로드하는 방법이 있습니까?
Related question - 그러나 두 가지 방법 중 하나를 선택하지 않으려 고합니다.
참고 : EF가 이와 같이 작동하는 이유를 알고 싶습니다. 나에게 버그가있는 것 같다.
답변을 확인하고 도움이되는지 알려주세요. –
Json.Net을 사용하여 json serializer를 교체하고 참조 루프 처리를 설정해야합니다. –