编辑:我读了这个答案,很好奇我是否可以做类似的事情。
我的项目有一个数据层,它只能通过存储过程与数据库通信。其中一个过程从具有一对多关系的两个表中返回数据。我正在使用 Oracle 数据访问库中的 OracleDataAdapter。适配器填充数据表。我有一个实体类 A,它有另一个实体类 B 的列表。我需要转换 DataTable 以匹配这种关系。Datatable 将填充多行,这些行仅具有不同的 B 对象。有没有办法我可以做到这一点?
EDIT2:假设我有 2 个班级,A 和 B。
public class A{
public int Id { get; set; }
public string Nome { get; set; }
public string Descricao { get; set; }
public DateTime Data { get; set; }
public int Quantidade { get; set; }
public List<B> Bs { get; set; }
}
public class B{
public int Id { get; set; }
public string Nome { get; set; }
}
我有一个数据表,其中包含以下数据:
Id Nome Descricao Data Quantidade Id_B Nome_B
1 "nome1" "desc1" 05/07/2013 2 5 "nomeB_1"
1 "nome1" "desc1" 05/07/2013 2 13 "nomeB_2"
所以,A 可以有多个 B 对象。我想制作一个通用解析器,它可以获取此 DataTable 并将其转换为 A 列表中的 B 列表。我认为可以使用 Marc Gravell 的解决方案和一些递归方法来分析属性是否为列表,并为A中的每个重复ID处理它。有人知道这是否可能吗?
提前谢谢你,我为糟糕的英语道歉。