.NET JSON 转换 Error ” Self referencing loop detected for type“

时间:2022-01-04 23:16:01

在进行实体转换为Json格式报错如下图:

Self referencing loop detected for property 'md_agent' with type 'System.Data.Entity.DynamicProxies.md_agent_5F7CB7C257B9164D0D18D2B3E8DA3838A3ED1C7F5D326A56B71D51234B89C401'. Path '[1].md_design[0]'.

原因:实体某些字段关联他实体的字段了

常用解决方案:赋值给新对象再转换成Json,例如下图:

            var data  = ServiceLocator.GetService<ITestBO>().GetFilteredList(p => p.IsDel ==  && p.RefType == ).Select(o=>new { ID=o.ID,Name=o.Name }); //选择某些字段,投影到新的类型对象
       var json = JsonConvert.SerializeObject(data);