实体框架导致循环引用?
Posted
技术标签:
【中文标题】实体框架导致循环引用?【英文标题】:Entity Framework causes circular references? 【发布时间】:2011-07-14 11:21:24 【问题描述】:我遇到了 EF Code First 问题,它抱怨生成的代理中存在循环引用。也许我们有一个约定冲突导致 EF 动态创建循环引用?数据集在直接传递给 JSON 序列化程序时不会产生错误。
/* Assume all dependencies and namespaces are referenced and used */
///the base object
public class A
[Key]
public int AId set; get;
//the tree
public B MyB set; get;
//the tree nodes
public class B
[Key]
public int BId set; get;
public int AId set; get;
public int ParendId set; get;
public virtual ICollection<B> Children set; get;
///the context
public class ABContext : DbContext
public DbSet<A> As set; get;
public DbSet<B> Bs set; get;
///later in a controller...
[HttpGet]
public JsonResult Get(string sid)
int id = int.Parse(sid);
using (ABContext abc = new ABContext())
A a = abc.As.Where(i=>i.AId==id).Single();
return Json(a, JsonRequestBehavior.AllowGet);
欢迎大家多多交流!
谢谢你, 亚历山大·布雷维格
【问题讨论】:
你的树节点有循环引用吗?并尝试将ParendId
设为可为空的 int
【参考方案1】:
我遇到了同样的问题。
http://garfbradazweb.wordpress.com/2011/09/22/mvc-3-entity-framework-and-serializing-jsoncircular-references/
用谷歌搜索了一下,似乎 javascriptSerializer 在尝试遍历具有关系的实体框架对象时遇到了麻烦。
【讨论】:
以上是关于实体框架导致循环引用?的主要内容,如果未能解决你的问题,请参考以下文章