使用Controller.Json()方法进行序列化时获得循环引用

时间:2010-11-29 14:09:12

标签: entity-framework-4 reference poco

我有一个模型edmx模型,我正在使用像这样的POCO:

public class ContactPerson
    {
        public virtual Guid ContactPersonId { get; set; }
        public virtual string FullName { get; set; }     
        public virtual Guid PositionId { get; set; }
        public virtual DateTime Birthday { get; set; }       
        public virtual Position Position { get; set; }
          }

public class Position
    {
        public virtual Guid PositionId { get; set; }
        public virtual string Name { get; set; }
        public virtual ICollection<ContactPerson> ContactPersons { get; set; }
    }

当我尝试使用Json()方法序列化from a in _context.Positions select a时,它会检测循环引用。我相信这是因为Position有一个对ContactPersons集合和ContactPerson的引用,同时对Position有一个参考。

问题很明显,该怎么办?

1 个答案:

答案 0 :(得分:2)

尝试在ContactPerson.Position属性中使用ScriptIgnoreAttribute。它会说JavaScriptSerializer不会序列化该属性,它会破坏循环引用。