批量反序列化数据表以使用嵌套列表进行分类

时间:2018-10-17 05:46:28

标签: c# .net linq type-conversion deserialization

我正在将数据上传到API,并且格式类似于

{
  "fielda": "conststring",
  "conversions": [
    conversions Resource
]
}

其中转化定义为

{
  "kind": "conststring#conversion",
  "configurationId": long,
  "stringid": string,
  "customVariables": [
    {
      "kind": "conststring#customVariable",
      "type": string,
      "value": string
    }
  ]
}

带有要添加的示例虚拟值的示例代码如下

        Conversion conversion = new Conversion();
        conversion.ConfigurationId = ConfigurationId; //mandatory field

        conversion.stringid= "stringabc";  // One of the must use Optional fields

        CustomVariable A=new CustomVariable ();
        A.Kind = "conststring1#customVariable";
        A.Type = "A20";
        A.Value = "0.0192186832427979"; 

        CustomVariable B= new CustomVariable();
        B.Kind = "conststring2#customVariable";
        B.Type = "A21";
        B.Value = "15235.0840575384";

        conversion.CustomVariables = new List<CustomVariable>();

        conversion.CustomVariables.Add(A);
        conversion.CustomVariables.Add(B);

这行得通,但是我现在试图通过从SQL数据库读取来分配这些值,并且试图找到性能最高的版本,该版本不会一次遍历整个数据集。有没有办法做到这一点?我不是要遍历数据表的数据行。

我看过https://codereview.stackexchange.com/questions/30714/converting-datatable-to-list-of-class

但是我对此有两个问题:

  1. 当我有成千上万的行时,它真的表现出色吗?

  2. 如果对点1的回答为是,如何在Conversion类中初始化嵌套列表“ customVariable”?自定义变量将来自数据库中的不同字段。

重要说明:从我的sql中,我将获得3列-stringid,Field1和Field2。 Field1将进入A.Value,Field2将进入B.Value(在上面的代码中)。其余字段将来自其他来源(不必担心)

任何指针将不胜感激。

0 个答案:

没有答案