C#将数据集转换为多个实体的通用列表

时间:2013-07-04 18:11:17

标签: c# stored-procedures oracle11g

  编辑:我读了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进行处理。任何人都知道这是否可行?

提前谢谢你,我为糟糕的英语道歉。

0 个答案:

没有答案