.net 实体框架中的序列化问题
我有下一个问题,我有下面两个类别的简单MVC.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() {
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; }
}