private ColumnBuilder PrepareColumn(string columnName, SQLiteDbType type)
        {
            if (columnName == null)
            {
                throw new ArgumentNullException(nameof(columnName));
            }
            if (string.IsNullOrEmpty(columnName))
            {
                throw new InvalidOperationException($"{nameof(columnName)} cannot be empty.");
            }

            if (_table.Columns.Any(c => c.Name.Equals(columnName, StringComparison.OrdinalIgnoreCase)))
            {
                throw new InvalidOperationException($"A column with name \"{columnName}\" has already been added.");
            }

            var column = new ColumnEntity();

            column.Name = columnName;
            column.Type = type;

            _table.Columns.Add(column);

            return(new ColumnBuilder(this, column));
        }
        private string GetTypeString(SQLiteDbType type)
        {
            switch (type)
            {
            case SQLiteDbType.Boolean:
                return("BOOLEAN");

            case SQLiteDbType.Integer:
                return("INTEGER");

            case SQLiteDbType.Double:
                return("DOUBLE");

            case SQLiteDbType.Text:
                return("TEXT");

            case SQLiteDbType.Blob:
                return("BLOB");

            case SQLiteDbType.DateTime:
                return("DATETIME");

            default:
                throw new NotImplementedException();
            }
        }
Ejemplo n.º 3
0
        private DbType GetDbTypeFromSqliteDbType(SQLiteDbType sqliteDbType)
        {
            switch (sqliteDbType)
            {
            case SQLiteDbType.Text:
                return(DbType.String);

            case SQLiteDbType.Numeric:
                return(DbType.VarNumeric);

            case SQLiteDbType.Integer:
                return(DbType.Int32);

            case SQLiteDbType.Int2:
                return(DbType.Int16);

            case SQLiteDbType.Decimal:
                return(DbType.Decimal);

            case SQLiteDbType.Real:
                return(DbType.Double);

            case SQLiteDbType.Datetime:
                return(DbType.DateTime);

            case SQLiteDbType.Blob:
                return(DbType.Binary);

            case SQLiteDbType.Guid:
                return(DbType.String);
            }
            return(DbType.String);
        }
        public TableBuilder WithColumn(string columnName, SQLiteDbType type, Action <ColumnBuilder> config)
        {
            if (columnName == null)
            {
                throw new ArgumentNullException(nameof(columnName));
            }
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            var builder = PrepareColumn(columnName, type);

            config(builder);

            return(builder.BuildColumn());
        }
Ejemplo n.º 5
0
        public static string GetSQLiteDataType(this SQLiteDbType dbType)
        {
            switch (dbType)
            {
            case SQLiteDbType.String:
                return("TEXT");

            case SQLiteDbType.Decimal:
                return("REAL");

            case SQLiteDbType.Integer:
                return("INTEGER");

            case SQLiteDbType.Object:
                return("BLOB");

            default:
                throw new ArgumentOutOfRangeException(nameof(dbType), dbType, null);
            }
        }
Ejemplo n.º 6
0
        public TableDataConfiguration Field(string name, SQLiteDbType type, bool isPrimaryKey = false, bool autoIncrement = false)
        {
            if (String.IsNullOrWhiteSpace(name))
            {
                throw new Exception("Field name cannot be empty.");
            }

            if (this.Fields.Any(f => f.Name == name))
            {
                throw new Exception($"Field {name} already exists.");
            }

            var field = new TableFieldDataConfiguration
            {
                Name          = name,
                Type          = type,
                IsPrimaryKey  = isPrimaryKey,
                AutoIncrement = autoIncrement
            };

            this.Fields.Add(field);

            return(this);
        }
        public TableBuilder WithColumn(string columnName, SQLiteDbType type)
        {
            var builder = PrepareColumn(columnName, type);

            return(builder.BuildColumn());
        }