.net 实体框架中的序列化问题

.net 实体框架中的序列化问题,.net,asp.net-mvc,entity-framework,serialization,asp.net-web-api,.net,Asp.net Mvc,Entity Framework,Serialization,Asp.net Web Api,我有下一个问题,我有下面两个类别的简单MVC public class Manager { public int Id { get; set; } public String Name { get; set; } public bool IsDeleted { get; set; } public virtual List<Employee> EmplCol { get; set; } public Manager() {

我有下一个问题,我有下面两个类别的简单MVC

public class Manager
{
    public int Id { get; set; }
    public String Name { get; set; }
    public bool IsDeleted { get; set; }
    public virtual List<Employee> EmplCol { get; set; }
    public Manager() 
    {
        this.EmplCol = new List<Employee>();
    }
}
public class Employee
{
    public int Id { get; set; }
    public String Profeesion { get; set; }
    public DateTime CreatedOn { get; set; }
    public Employee() { }
}
和下一个实体框架上下文

在将自动生成的WebApi 2控制器添加到我的项目中,以Manager作为模型,以EFContext作为上下文类之后,我得到了序列化异常。在这种情况下,我必须做什么才能启用序列化

试试这个:

[DataContract]
public class Manager
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public String Name { get; set; }

    [DataMember]
    public bool IsDeleted { get; set; }

    [JsonIgnore]
    public virtual List<Employee> EmplCol { get; set; }
}

如果它有效,我将编辑并解释原因,

除了用户2997779的回答之外:如果您收到检测到的属性的自引用循环。。。异常消息,此页面有几种处理方法:

我怀疑在Manager的构造函数尝试设置此值时是否会编译。SheepCol但没有名为SheepCol@AndyNichols对不起,我已经改变了。在序列化期间创建的代理出现实际问题,当我尝试此操作时。Configuration.ProxyCreationEnabled=false;它解决了问题,但在这种情况下,我得到了空的EmplocolPost您的控制器代码,并请张贴完整的异常
[DataContract]
public class Manager
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public String Name { get; set; }

    [DataMember]
    public bool IsDeleted { get; set; }

    [JsonIgnore]
    public virtual List<Employee> EmplCol { get; set; }
}