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)); }
public int GetLastId(ITableMetaData table) { using (var command = this.Connection.CreateCommand()) { return((int)this.Language.PrepareLastIdCommand(table, command).ExecuteScalar()); } }
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))) )); }
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); }
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)); } } }
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); } }
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); }
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)); } } }
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); }
public override string LastIdCommandText(ITableMetaData table) { return("SELECT last_insert_rowid();"); }
public virtual IDbCommand PrepareLastIdCommand(ITableMetaData table, IDbCommand command) { command.CommandText = this.LastIdCommandText(table); return(command); }
public virtual IDbCommand PrepareCreateTableCommand(ITableMetaData table, IDbCommand command) { command.CommandText = this.CreateTableCommandText(table); return(command); }
public abstract string LastIdCommandText(ITableMetaData table);
public override string LastIdCommandText(ITableMetaData table) { // Deliberately unusual to more clearly show when Database may have created a parameter name itself. return("SELECT #GetLastId;"); }