Входные данные:
Парсится большой лог-файл и на основе него создается словарь {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#. Но не знаю как подойти к задаче, чтобы реализовать похожим способом.
Подскажите?