【发布时间】:2013-10-24 21:50:36
【问题描述】:
假设我有以下课程:
public class Parent
{
public string name;
IList<Child> children;
}
public class Child
{
public string parentName;
public int age;
}
可以理解,每个父母可以有多个孩子,我们也可以有多个父母。初始化这些类的最佳方法是什么?从数据库中获取所有父母和所有孩子然后使用LINQ会更好吗?
IList<Parent> parents = GetParents() //assume this gets parents from db
IList<Child> children = GetChildren() //assume this gets children from db
foreach(Parent parent in parents)
{
parent.children = children.Where(x=>x.parentName == parent.name).ToList();
}
或者获取所有的父母并遍历每个父母以通过parentName查询数据库以获取孩子的信息?由于我的要求,我不能使用数据表或数据集;我只能使用数据阅读器。
IList<Parent> parents = GetParents()//assume this gets parents from db
foreach(Parent parent in parents)
{
parent.children = GetChildrenByParentName();//assume this gets parents from db by parentName
}
谢谢
【问题讨论】:
-
“Children”数据库表是否有指向“Parents”表的链接,例如有“parentId”列?如果是这样,那么如果您使用 Linq to SQL 或实体框架访问数据库,他们将为您处理关系。
-
由于要求,我不能使用Linq to SQL或Entity Framework,只能通过datareader获取数据。 “子”数据库表只有父名,没有其他相关信息。父名是这两者之间的唯一联系。
标签: c# linq list collections datareader