@FreeArcher
Senior 1С; php, JS Starter

Чем можно легко сгенерировать создание sql таблицы и insert данных на основании словаря?

Входные данные:
Парсится большой лог-файл и на основе него создается словарь {param_name: value}. Таких параметров 15-20.
Словари собирается в массив словарей.

Что нужно:
На основе этого массива словарей создать таблицу в sql базе (причем желательно чтобы код поддерживал несколько баз: msssql, postgres, sqlight). Т.е. имена параметров станут именами колонок. Причем в каждом словаре могут быть разные параметры. Но тут соберу массив уникальных колонок, это не проблема.
И далее на основе этого словаря заполнить таблицу.

Данную задачу я реализовывал на python. Сначала на обычных запросах, которые генерировались в циклах, но далее перешел на ORM sqlalchemy и весь код сократился буквально до нескольких строк.
#CREATE TABLE
    dbTable = Table(db_table, metadata, *l_Column)
    metadata.create_all()
#l_Column - список имен колонок
***
for params in lparams:
    ins = dbTable.insert().values(**params)
    result = conn.execute(ins)

#lparams - список словарей


Очень просто и надежно получилось.

Хочу переписан на C#. Но не знаю как подойти к задаче, чтобы реализовать похожим способом.
Подскажите?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Voland69
Я бы попробовал пойти вот таким путем:
1. Парсим файл и собираем словари.
2. При помощи TypeBuilder из сборки Reflection Emit формируем нужные типы.
3. Берем Entity Framework и по полученной модели собираем дата контекст и создаем базу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы