Я пытаюсь сериализовать 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
Когда я прийти к сериализации User
объекта, отображено сообщение об ошибке:
A circular reference was detected while serializing an object of type 'System.Data.Entity.DynamicProxies.User_7A469191462B9ADC27B374089E18004C2D72F0D107975B83F04E7A46145E1B1E'.
Очевидно, глядя на обоих User
и Role
, оба они содержат коллекции друг друга, поэтому генерируется ошибка circular reference
, но я предположил бы, что добавив атрибут ScriptIgnore
к членам Users
и Roles
, они будут проигнорированы в этом случае.