示例#1
0
        /// <summary>
        /// Serialise a table
        /// </summary>
        public void SerialiseTable(Table table, RecordSerialiser serialiser)
        {
            using (var connection = OpenConnection())
            {
                using (var command = new SqlCommand(table.Query, connection))
                {
                    command.CommandType = System.Data.CommandType.Text;
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var record     = new Record();
                            var allColumns = new List <string>();
                            foreach (var column in  table.Columns)
                            {
                                getAllColumns(column, allColumns);
                            }

                            foreach (var column in allColumns)
                            {
                                record.Fields.Add(reader[column]);
                            }

                            //serialise the record object into the serialiser
                            serialiser.SerialiseRecord(record);
                        }
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Serialise a single table
 /// </summary>
 static void SerialiseTable(Table table, IDatabase database, string outputFolder)
 {
     Console.WriteLine($"serialising table {table.Name} to file {table.Filename}");
     using (var serialiser = new RecordSerialiser(Path.Combine(outputFolder, table.Filename)))
     {
         database.SerialiseTable(table, serialiser);
     }
 }