Доступ к столбцу таблицы Entity Framework по индексу - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь «автоматизировать» обработку некоторых данных из электронной таблицы в таблицу данных с использованием C # и Entity Framework, и было бы очень эффективно иметь возможность перебирать поля в электронной таблице и добавлять данные в поля в таблице записывают с помощью пары циклов for. Я могу создать новую запись базы данных, используя синтаксис

CompanyData newRow = new CompanyData();

Проблема в том, что я не могу получить доступ к столбцам в таблице, используя индекс, например.

newRow[a] = worksheet.Cells[a, b]?  

1 Ответ

0 голосов
/ 04 мая 2019

Я понял это и хотел убедиться, что я закончил вопрос.

  1. Используя System.Reflection, вы можете получить столбцы для базы данных, так как в рамках сущности они построены как объект. Это свойства по классу

  2. Если у вас есть этот массив PropertyInfo, вы можете выполнять итерацию по свойствам. В этом случае я пропускаю пару свойств

  3. Затем вы можете получить значения из электронной таблицы (выходящие за рамки этого вопроса) и поместить их в поле таблицы. (Строка newRow.GetType).

    PropertyInfo[] pi = newRow.GetType().GetProperties();
    int propLoop = pi.Length;
    for (int a = 3; a < propLoop-2; a++)
    {
        double thisvalue = 0;
        double.TryParse(worksheet.Cells[a - 1, b].RichText.Text, out thisvalue);
        newRow.GetType().GetProperty(pi[a].Name).SetValue(newRow, thisvalue);
    }
    

Надеюсь, это окажется полезным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...