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だけでなく、データベース内の自分の同名にマップEntityTypeConfiguration

I Userオブジェクトをシリアル化するために来て、エラーが発生したと言って:両方を見て、明らかに

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

、とRoleクラスでは、どちらも両方ともコレクションが含まれているため、circular referenceエラーが生成されましたが、UsersおよびRolesメンバーに対してScriptIgnore属性を追加すると、このインスタンスでは無視されます。

答えて

関連する問題