编辑:我读了this回答,并且好奇我能不能做点什么 类似。
我的项目有一个数据层,只能通过存储过程与数据库通信。其中一个过程从两个表中返回数据,这两个表具有一对多的关系。我正在使用Oracle Data Access库中的OracleDataAdapter。适配器填充DataTable。我有一个实体类A,它有一个另一个实体类B的List。我需要转换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; }
}
我有一个DataTable,其数据如下:
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的解决方案和一些递归方法来分析属性,知道是否是List ,并为A中的每个重复ID进行处理。任何人都知道这是否可行?
提前谢谢你,我为糟糕的英语道歉。