EF中用Newtonsoft.Json引发的循环引用问题
描述:
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 问题解决