Массовая десериализация данных в класс с вложенным списком - PullRequest
0 голосов
/ 17 октября 2018

Я загружаю данные в API, и формат выглядит примерно так:

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

, где преобразования определены как

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

. Пример кода с примерами фиктивных значений для добавления выглядит следующим образом:this

        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, и я пытаюсь найти наиболее производительную версию, которая не выполняет итерацию по одной строке набора данныхвремя.Есть ли способ сделать это?Я НЕ ищу циклический просмотр данных datows.

Я смотрел на https://codereview.stackexchange.com/questions/30714/converting-datatable-to-list-of-class

, но у меня есть 2 вопроса по этому поводу:

  1. Является ли это действительно производительным, когда и у меня есть тысячи строк?

  2. Если ответ на пункт 1 положительный, как я могу инициализировать вложенный список «customVariable» в Преобразованииучебный класс?Пользовательские переменные будут поступать из разных полей базы данных.

Важно отметить: из моего sql я бы получил 3 столбца - stringid, Field1 и Field2.Field1 перейдет в A.Value, а Field2 перейдет в B.Value (в коде выше).Остальные поля будут взяты из других источников (не беспокойтесь о них)

Будем благодарны за любые указатели.

...