Динамическое создание объекта Class и Enumerable из MSSQL с использованием C # - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно разработать ETL с использованием C #, который извлекает таблицу из базы данных MSSQL, преобразует указанную таблицу в формат .parquet и сохраняет ее в определенном месте. Я использую пакет Parquet.Net и .Net4.5.

Я получил код для работы с одной таблицей, но мне нужно, чтобы он действовал больше как функция. Там, где вам нужно будет только обновить базу данных и имя таблицы, и она автоматически создаст требуемый класс, создаст объект Enumerable и напишет паркет.

//Create required class    
    public class SimpleStructure
    {
        public int ID { get; set; }
        public string Text { get; set; }
    }
//Import SQL table
    var table = new DataTable();
    using (var da = new SqlDataAdapter("SELECT * FROM x", "Data Source=(x);Database=Test;" + "Integrated Security=x;"))
    {da.Fill(table);}

//Create Enumerable Object
        var results = from row in table.AsEnumerable()
                      select new SimpleStructure
                      {
                          ID = row.Field<int>("ID"),
                          Text = row.Field<string>("Text")
                      };

//Write .parquet
            using (Stream stream = File.OpenWrite("C:\\"))
            {
                ParquetConvert.Serialize(results.ToArray(), stream);
            }

Мне нужно выяснить, как динамически создавать классы и перечислять объекты, так как этот сценарий нужно будет применить к сотням таблиц. Любые указатели были бы полезны, так как я довольно неопытен с C #.

...