实例如下:
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;
于是后来就发生了,两个方法递归调用,~
虽然后来想来些办法,用一些判断解决了一点问题,但是还是没能完全解决。所以想请高手们帮忙想想主意·~
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;
于是后来就发生了,两个方法递归调用,~
虽然后来想来些办法,用一些判断解决了一点问题,但是还是没能完全解决。所以想请高手们帮忙想想主意·~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货