0

DTO를 순차적으로 줄이려고 시도했지만 순환 참조 문제를 제기했습니다. 이는 확실히 유효합니다. 나는 다음과 같은 요소를 가지고 :무시되고있는 ScriptIgnore 속성

public class User { 
    [Key] 
    public int UserID { get;set; } 
    public string EmailAddress { get;set; } 
    // etc 
    [ScriptIgnore] 
    public virtual ICollection<Role> Roles { get;set; } 
}; 

public class Role { 
    [Key] 
    public int RoleID { get;set; } 
    // etc 
    [ScriptIgnore] 
    public virtual ICollection<User> Users { get;set; } 
}; 

이들 엔티티의 모두를 통해 가져온 것이 아니라, 사용자 정의로 매핑되는 중간 테이블 UserRoles뿐만 아니라, 데이터베이스에 자신의 namesakes에 매핑 EntityTypeConfiguration

I User 객체를 직렬화 온 오류가 말을 발생

A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.User_7A469191462B9ADC27B374089E18004C2D72F0D107975B83F04E7A46145E1B1E'.

을 분명히 모두보고및 Role 클래스의 두 클래스는 모두 서로의 컬렉션을 포함하므로 circular reference 오류가 생성되었지만 UsersRoles 멤버에 대해 ScriptIgnore 특성을 추가하면이 인스턴스에서 무시됩니다.

답변