您的位置:首页 > 其它

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

2016-10-30 22:33 302 查看
最近某些巧合下重拾.net 使用ef5 开发一个小型项目。

在项目里遇到 ef 外键关系导致 解析json时出现循环引用的错误。

自己查询相关资料总结了两条最好的解决方案,如下。

★第一种 如果是代码优先推荐这个

引用 Newtonsoft.Json

ef实体类中外键导航属性
[JsonIgnore]  //加上这个特性 忽略json中的外键关系
public virtual ICollection<score> scores { get; set; }  

具体实现

protected string VCOperationManBind(HttpContext context)

{

       List<OperationMan> list = pmbll.GetList();

       var result = JsonConvert.SerializeObject(list); //泛型直接转换成json 不会报循环引用的错误
       return result;
}

★第二种  因为我使用的是数据库优先,所以我用这个方案,简单粗暴

public List<OperationMan> GetList()

{

    db.Configuration.ProxyCreationEnabled = false;//有需要忽略外键导航属性的  直接在DAL层获取数据方法时标明
    return db.OperationMan.ToList();
}

★其它,无非就是返回数据过滤掉外键属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net entityframework
相关文章推荐