序列化类型为XX的对象时检测到循环引用

时间:2024-09-11 08:37:50

序列化类型为XX的对象时检测到循环引用

 /// 产品列表展示
/// </summary>
/// <returns></returns>
public ActionResult ShowProduct(int pagenum=)
{
//获得所有组别
Galasys_IBLL.IT_BIZ_PRODUCT_GROUPService iT_BIZ_PRODUCT_GROUPService = new Galasys_BLL.T_BIZ_PRODUCT_GROUPService();
var t_BIZ_PRODUCT_GROUPs = iT_BIZ_PRODUCT_GROUPService.LoadEntities(g => g.GROUP_ISLOGIDEL == "F").Select(g => new { g.GROUP_ID,g.GROUP_NAME}).ToList();
//获得所有类别
Galasys_IBLL.IT_BIZ_PDT_TYPEService iT_BIZ_PDT_TYPEService = new Galasys_BLL.T_BIZ_PDT_TYPEService();
var t_BIZ_PDT_TYPEs = iT_BIZ_PDT_TYPEService.LoadEntities(c => c.PDT_TYPE_ISLOGIDEL == "F").Select(c => new { c.PDT_TYPE_ID ,c.PDT_TYPE_NAME}).ToList();
//获得当前页产品
Galasys_IBLL.IT_B2C_PRODUCTINFOService iT_B2C_PRODUCTINFOService = new Galasys_BLL.T_B2C_PRODUCTINFOService();
int pageSize=; //每页条数
int total; //总条数
//List<T_B2C_PRODUCTINFO> t_B2C_PRODUCTINFOes = iT_B2C_PRODUCTINFOService.LoadPageEntities(pagenum, pageSize, out total, p => p.PRODUCTINFO_DEL == "F", true, p => p.PRODUCTINFO_ID).ToList();
var t_B2C_PRODUCTINFOes = iT_B2C_PRODUCTINFOService.LoadEntities(p => p.PRODUCTINFO_DEL == "F").Select(p => new { p.PRODUCTINFO_ID, p.PRODUCTINFO_PDTID, p.PRODUCTINFO_PDTNAME, p.PRODUCTINFO_PRICE, p.PRODUCTINFO_CPRICE, p.PRODUCTINFO_CHARGETYPE }).ToList();
var Product_Group_Type = new
{
t_BIZ_PRODUCT_GROUPs = t_BIZ_PRODUCT_GROUPs,
t_BIZ_PDT_TYPEs = t_BIZ_PDT_TYPEs,
t_B2C_PRODUCTINFOes = t_B2C_PRODUCTINFOes
}; return Json(new { status = "ok", Product_Group_Type = Product_Group_Type, msg = "成功" }, JsonRequestBehavior.AllowGet);
}

代码中红色的部分就是把原来的所有列查出来,

改为了 不要把带外键的查询出来,只需要没有外键的的列,

因为有外键的会关联到其他的表,如果关联表也在序列化之中,就会出现循环序列化的情况。