Example #1
0
        public virtual string CreateTableCommandText(ITableMetaData table)
        {
            var columns           = table.GetColumns(excludeId: false);
            var columnDefinitions = string.Join(", ", columns.Select(c => this.CreateColumnDefinition(c)));

            return(string.Format("CREATE TABLE {0} ({1});", this.Quote(table.TableName), columnDefinitions));
        }
Example #2
0
 public int GetLastId(ITableMetaData table)
 {
     using (var command = this.Connection.CreateCommand())
     {
         return((int)this.Language.PrepareLastIdCommand(table, command).ExecuteScalar());
     }
 }
Example #3
0
        public virtual string InsertCommandText(ITableMetaData table)
        {
            var columns = table.GetColumns(excludeId: true);

            return(string.Format(
                       "INSERT INTO {0} ({1}) VALUES ({2});",
                       this.Quote(table.TableName),
                       string.Join(", ", columns.Select(c => this.Quote(c.ColumnName))),
                       string.Join(", ", columns.Select(c => this.ParameterName(c.ColumnName)))
                       ));
        }
Example #4
0
        private bool GetIsIdColumn(ITableMetaData table, PropertyInfo property)
        {
            var columnAttribute = this.GetColumnAttribute(property);

            if (columnAttribute == null)
            {
                return(property.Name.Equals("Id", StringComparison.InvariantCultureIgnoreCase) || property.Name.Equals(table.RowType.Name + "Id", StringComparison.InvariantCultureIgnoreCase));
            }

            return(columnAttribute.IsPrimaryKey);
        }
Example #5
0
        public void CreateTable(ITableMetaData table)
        {
            using (var command = this.Connection.CreateCommand())
            {
                var result = this.Language.PrepareCreateTableCommand(table, command).ExecuteNonQuery();

                if (result != 0)
                {
                    throw new Exception(string.Format("CREATE TABLE returned {0}. Expected value to be 0.", result));
                }
            }
        }
Example #6
0
        public ColumnMetaData(ITableMetaData table, PropertyInfo property)
        {
            this.Table      = table;
            this.Property   = property;
            this.ColumnName = GetColumnName(property);
            this.IsIdColumn = GetIsIdColumn(table, property);

            if (!this.IsIdColumn)
            {
                this.IsNullable = this.GetIsNullable(property);
            }
        }
Example #7
0
        public static ITableMetaData GetTable(Type rowType)
        {
            ITableMetaData metaData = null;

            if (!Tables.TryGetValue(rowType, out metaData))
            {
                metaData = new TableMetaData(rowType);
                Tables.Add(rowType, metaData);
            }

            return(metaData);
        }
Example #8
0
        public void Insert <TRow>(TRow row, ITableMetaData table)
        {
            using (var command = this.Connection.CreateCommand())
            {
                this.Language.PrepareInsertCommand(row, table, command);

                var result = command.ExecuteNonQuery();

                if (result != 1)
                {
                    throw new Exception(string.Format("INSERT returned {0}. Expected value to be 1.", result));
                }
            }
        }
Example #9
0
        public virtual IDbCommand PrepareInsertCommand <T>(T row, ITableMetaData table, IDbCommand command)
        {
            command.CommandText = this.InsertCommandText(table);

            foreach (var column in table.GetColumns(excludeId: true))
            {
                var parameter = command.CreateParameter();

                parameter.ParameterName = this.ParameterName(column.ColumnName);
                parameter.Value         = column.Property.GetValue(row, null);

                command.Parameters.Add(parameter);
            }

            return(command);
        }
Example #10
0
 public override string LastIdCommandText(ITableMetaData table)
 {
     return("SELECT last_insert_rowid();");
 }
Example #11
0
        public virtual IDbCommand PrepareLastIdCommand(ITableMetaData table, IDbCommand command)
        {
            command.CommandText = this.LastIdCommandText(table);

            return(command);
        }
Example #12
0
        public virtual IDbCommand PrepareCreateTableCommand(ITableMetaData table, IDbCommand command)
        {
            command.CommandText = this.CreateTableCommandText(table);

            return(command);
        }
Example #13
0
 public abstract string LastIdCommandText(ITableMetaData table);
Example #14
0
 public override string LastIdCommandText(ITableMetaData table)
 {
     // Deliberately unusual to more clearly show when Database may have created a parameter name itself.
     return("SELECT #GetLastId;");
 }