>>991
上にもあるけどこうじゃねぇの

public class C {
public int Id {get;set;}
public List<A> a {get;set;}
public List<B> b {get;set;}
}
public class A {
public int Id {get;set;}
public List<B> ListB {get;set;}
public virtual C c {get;set;}
public A(){ ListB = new List<B>();}
}
public class B {
public int Id {get;set;}
public List<A> ListA {get;set;}
public virtual C c {get;set;}
public B(){ ListA = new List<A>();}
}

static void main(){
C c = new C{Id=1}

// できるやつ。でもCA、CBの関係はあるけどABの関係がないから値が入らない
c.a.ListB.add(new B{Id=1, c=c});
c.b.ListA.add(new A{Id=1, c=c});

// できないやつ。逆も同様
c.a.ListB.add(new B{Id=1, c=c, ListB =???});
}