EF中用Newtonsoft.Json引发的循环引用问题

时间:2021-08-28 16:50:13

描述:

1、双向关系表a->b b->aList

2、在查询a引用b以后

3、用Newtonsoft.Json 去tojsonstring

4、一个只有6条数据的json串 出现了一屏幕字符然后内存溢出

解决方案:

1、网上各种解决方法都是不靠谱不奏效的

2、不要对ef失去信心

3、做个模型然后在获取列表的时候用新模型

public IList<DeviceInfoMenuModel> GetMenuList(DeviceInfoParam param)
{
var list = _deviceInfoRepository.Table;

if (param != null)
{

if (!string.IsNullOrWhiteSpace(param.Province))
{
list = list.Where(r => r.Province.ProName == param.Province.Trim());
}
if (!string.IsNullOrWhiteSpace(param.City))
{
list = list.Where(r => r.City.CityName == param.City.Trim());
}
if (!string.IsNullOrWhiteSpace(param.District))
{
list = list.Where(r => r.District.DisName == param.District.Trim());
}
}

list = list.OrderByDescending(r => r.Id);

return list.Select(Mapper.Map<DeviceInfo, DeviceInfoMenuModel>).ToList();   //《----注意这里的映射
}

4、在生成json 问题解决