实例如下: 
 public class A
    {
        private string _id;
        private List<B> _bs = new List<B>();        public A() { }
        public A(string id)
        {
            this._id = id;
        }        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }        public List<B> Bs
        {
            get { return _bs; }
            set { _bs = value; }
        }
    }
public class B
    {
        private int _id;
        private string _name;
        private List<A> _as = new List<A>();         public B()
        { 
        }        public B(int id,string name)
        {
            this._id = id;
            this._name = name;
        }        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }        public List<A> As
        {
            get { return _as; }
            set { _as= value; }
        }        public int Id
        {
            get { return _id; }
            set { _id = value;  }
        }
    }
描述:在数据库有两张表,以上A和B 分别是他们的实体类~他们在数据库中是 多对多的关系~ 有一张关系表维护关系
      于是我在实体中互相以一个对方的List的形式来描述他们的关系
想要的结果:我在查询 A 的时候, 查询 A 所对应的 B ,然后放入到A中的List<B>中. 使用时 可以 A.Bs 直接得到所有与之关联的B
     在查询 B 的时候 也同样的思路 为他的List<A>填充数据~ 这样在程序开始得到了所有的相关数据,在后面就不用去频繁查询
      (注:不考虑数据量很大,并且不考虑数据库数据更新)
问题:在DAO中 查询到A的时候 会调用B 中的FindByA(A a);查询与之关联的B。然后查询B的时候相反调用A 的FindByB(B b);查询与之关联的A;
     于是后来就发生了,两个方法递归调用,~
 虽然后来想来些办法,用一些判断解决了一点问题,但是还是没能完全解决。所以想请高手们帮忙想想主意·~