示例#1
0
        private Schema LoadSchema()
        {
            var result = new Schema(StringComparer.CurrentCultureIgnoreCase);

            foreach (var tableName in _details.GetTableNames(_db))
            {
                var autoIncrementName = _keyAccess.GetAutoIncrementName(tableName);
                var columns           = new Dictionary <string, int>();

                foreach (var col in _details.GetColumns(_db, tableName))
                {
                    var name = _details.GetColumnName(col);

                    if (name == autoIncrementName)
                    {
                        continue;
                    }

                    columns[name] = !_details.IsNullableColumn(col) || _details.GetColumnDefaultValue(col) != null
                        ? CommonDatabaseDetails.RANK_CUSTOM
                        : _details.GetRankFromSqlType(_details.GetColumnType(col));
                }

                result[tableName] = columns;
            }

            return(result);
        }