2011-07-14 11 views
1

私はEF Code Firstに問題があり、生成されたプロキシで循環参照に不満があります。おそらく、EFにその場で循環参照を作成させるコンベンション競合がありますか?データセットはJSONシリアライザに直接渡されただけでエラーは発生しません。Entity Frameworkは循環参照を引き起こしますか?

/* 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); 
    } 
} 

すべてのことを非常に歓迎します。

は、私は同じ問題を抱えていた アレクサンダーBrevig

+0

ツリーノードに循環参照がありますか? 'ParendId'をnullにできるようにしようint – Eranga

答えて

関連する問題