/// <summary> /// Column schema - some properties /// </summary> public class ColumnSchema { public String ColumnName { get; set; } public Type DataType { get; set; } public SqlDbType DbType { get; set; } public Int32 ColumnSize { get; set; } public Int16 Precision { get; set; } public Int16 Scale { get; set; } public Boolean IsIdentity { get; set; } /// <summary> /// default constructor /// </summary> public ColumnSchema() { } public ColumnSchema(String columnName, Type dataType, SqlDbType dbType, Int32 columnSize, Int16 precision, Int16 scale, Boolean isIdentity) { ColumnName = columnName; DataType = dataType; DbType = dbType; ColumnSize = columnSize; Precision = precision; Scale = scale; IsIdentity = isIdentity; } } /// <summary> /// TableSchema class - has a list of columns /// </summary> public class TableSchema { internal String TableName; internal List<ColumnSchema> Columns = new List<ColumnSchema>(); public TableSchema(String table, List<ColumnSchema> columnsList) { TableName = table; Columns = columnsList; } /// <summary> /// Returns column's schema /// </summary> /// <param name="columnName"></param> /// <returns></returns> internal ColumnSchema GetColumnSchema(String columnName) { var columnSchema = Columns.Where(x => x.ColumnName == columnName).FirstOrDefault(); return columnSchema; } internal Type GetColumnType(String columnName) { var columnSchema = GetColumnSchema(columnName); if (columnSchema==null) return null; return columnSchema.DataType; } internal SqlDbType? GetColumnDbType(String columnName) { var columnSchema = GetColumnSchema(columnName); if (columnSchema == null) return null; return columnSchema.DbType; } }