如何用数据表中的关系填充对象?

代号Cain:

我在设计一种将CSV数据导入业务对象的方法时遇到了麻烦。我首先解析CSV,然后将每一行放入DataTable,这就是我的思维障碍所在。

我有以下课程,其中APDistribution被视为具有1:1关系的Voucher的子级:

public class Voucher
{
    public string GPVoucherNumber { get; set; }
    public string VendorID { get; set; }
    public string TransactionDescription { get; set; }
    public string Title { get; set; }
    public string DocNumber { get; set; }
    public DateTime DocDate { get; set; }
    public decimal PurchaseAmount { get; set; }

    public IEnumerable<APDistribution> Distributions { get; set; }
}

public class APDistribution
{
    public string AccountNumber { get; set; }
    public decimal Debit { get; set; }
    public decimal Credit { get; set; }
    public string DistributionReference { get; set; }
}

我的CSV看起来像这样。几个字段可以重复表示凭证交易(供应商,标题发票编号,发票金额等),而某些字段是分配明细(日记帐科目代码,日记帐金额)。CSV数据

我开始以为可以使用Linq投影到业务对象上,但是我没有看到如何构造查询以一次性完成。我发现自己想知道是否可以执行一个查询以将其投影到Voucher集合中,或者执行一个查询以将其关联到APDistribution集合中,然后执行某种代码来正确地关联它们。

我从以下内容开始,在这里我按应该唯一定义Voucher的字段进行分组,但这不起作用,因为投影处理的是匿名类型而不是DataRow。

var vouchers =
            from row in invoicesTable.AsEnumerable()
            group row by new { vendor = row.Field<string>("Vendor Code"), invoice = row.Field<string>("Vendor Invoice Number") } into rowGroup
            select new Voucher
            { VendorID = rowGroup.Field<string>("Vendor Code") };

在不引入复杂的Linq的情况下是否可以实现这一点,未来的开发人员(包括我自己)可能很难理解/维护?没有我忽略的没有Linq的简单方法吗?

PK。

总体思路是:

     invoicesTable
        .AsEnumerable()
        .GroupBy(x=> new { row.Field<string>("Vendor Code"), row.Field<string>("Vendor Invoice Number")})
        .Select(grouping =>
           new Voucher 
           {
              VendorID = grouping.First().Field<string>("VendorId") /* and so on */
              Distributions = grouping.Select(somerow => new redistribution {AccountNumber = somerow.Field<string>("AccountNumber")  /* and so on */}
        }

但这不是最优雅的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在数据表angular中基于JSON动态填充表值?

来自分类Mysql

从MySQL:Php Ajax填充数据表中的数据

来自分类Dev

数据表填充Ajax

来自分类Dev

如何用相同维度的另一个数据表的值替换一个数据表中的某个值

来自分类Dev

如何从数据表移交行对象

来自分类Dev

在angular 7中,如何用对象中的数据填充mat-table

来自分类Dev

如何从Flutter中的数据表的数据行创建对象

来自分类Dev

如何用数据表实现Daterangepicker?

来自分类Dev

如何在Yajra数据表中使用雄辩的关系?

来自分类Dev

如何用json数据填充表

来自分类Dev

数据表中未使用数组对象填充数据,出现空白屏幕

来自分类Dev

如何用另一个表中的数据(计算得出的)填充SQL列

来自分类Dev

如何获取和使用会话对象在JSF中填充数据表?

来自分类Dev

如何根据同一表中的父子关系排序数据表

来自分类Dev

如何用“#”分割字符串并将结果存储在数据表中

来自分类Dev

如何从Excel ListObject表填充数据表

来自分类Dev

使用JS对象中的数据填充数据表

来自分类Dev

数据表中的一对多关系

来自分类Dev

如何从数据表中的Json对象读取子数组

来自分类Dev

在数据表中填充JSON对象

来自分类Dev

用关系表中的数据填充表单

来自分类Dev

在JPA中从数据库填充数据表

来自分类Dev

如何用某些数据的所有可能实例填充数据表?

来自分类Dev

如何通过ASP.NET C#中的循环填充数据表

来自分类Dev

如何用javascript中的数组中的数据填充和对象

来自分类Dev

如何用excel中单独工作表中的数据填充单元格?

来自分类Dev

在关系表中自动填充数据

来自分类Dev

如何转换数据表中对象的属性

来自分类Dev

如何填充数据表中每一行的下拉值?

Related 相关文章

  1. 1

    如何在数据表angular中基于JSON动态填充表值?

  2. 2

    从MySQL:Php Ajax填充数据表中的数据

  3. 3

    数据表填充Ajax

  4. 4

    如何用相同维度的另一个数据表的值替换一个数据表中的某个值

  5. 5

    如何从数据表移交行对象

  6. 6

    在angular 7中,如何用对象中的数据填充mat-table

  7. 7

    如何从Flutter中的数据表的数据行创建对象

  8. 8

    如何用数据表实现Daterangepicker?

  9. 9

    如何在Yajra数据表中使用雄辩的关系?

  10. 10

    如何用json数据填充表

  11. 11

    数据表中未使用数组对象填充数据,出现空白屏幕

  12. 12

    如何用另一个表中的数据(计算得出的)填充SQL列

  13. 13

    如何获取和使用会话对象在JSF中填充数据表?

  14. 14

    如何根据同一表中的父子关系排序数据表

  15. 15

    如何用“#”分割字符串并将结果存储在数据表中

  16. 16

    如何从Excel ListObject表填充数据表

  17. 17

    使用JS对象中的数据填充数据表

  18. 18

    数据表中的一对多关系

  19. 19

    如何从数据表中的Json对象读取子数组

  20. 20

    在数据表中填充JSON对象

  21. 21

    用关系表中的数据填充表单

  22. 22

    在JPA中从数据库填充数据表

  23. 23

    如何用某些数据的所有可能实例填充数据表?

  24. 24

    如何通过ASP.NET C#中的循环填充数据表

  25. 25

    如何用javascript中的数组中的数据填充和对象

  26. 26

    如何用excel中单独工作表中的数据填充单元格?

  27. 27

    在关系表中自动填充数据

  28. 28

    如何转换数据表中对象的属性

  29. 29

    如何填充数据表中每一行的下拉值?

热门标签

归档