gpt4 book ai didi

entity-framework - 在Json.net中序列化一对多关系

转载 作者:行者123 更新时间:2023-12-03 12:38:27 25 4
gpt4 key购买 nike

我首先使用实体​​框架代码进行数据访问,并且有一个Company类,该类具有一组Employees。 Employee类也具有Company属性。

我希望能够对公司进行序列化,并在序列化中包括员工列表。

这是公司:

public class Company
{
public long Id { get; set; }
public string Name { get; set; }
public DateTime? Established { get; set; }

public virtual IList<Employee> Employees { get; set; }

public DateTime? DateCreated { get; set; }
public DateTime? DateUpdated { get; set; }
}


这是员工

public class Employee
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }

public virtual Company Company { get; set; }

public DateTime? DateCreated { get; set; }
public DateTime? DateUpdated { get; set; }
}


尝试序列化Company对象时,出现序列化异常“检测到类型的自引用循环”。

谢谢。

最佳答案

我认为他们已在最新版本中修复了此问题。

在“对JSON进行序列化和反序列化->序列化和保留对象引用”部分下查看help docs

在初始化JSON.Net序列化器时设置以下设置:

PreserveReferencesHandling = PreserveReferencesHandling.Objects;


因此,示例如下:

var serializerSettings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects };

string json = JsonConvert.SerializeObject(people, Formatting.Indented, serializerSettings);


我验证了它可以与我的代码优先解决方案一起使用,并在导航属性中具有循环引用。如果查看生成的JSON,则到处都应该具有“ $ id”和“ $ ref”属性。

关于entity-framework - 在Json.net中序列化一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com