public T ExecuteScalar <T>(DbCommandSpec commandSpec) { var command = commandSpec.CreateCommand(dbAdapter, connection); var result = Try(command.ExecuteScalar); return((T)result); }
public DbCommandSpec GetInsertCommand(IEntity entity, int?parentId) { var command = new DbCommandSpec(); var columnProperties = propertyMaps.Where(x => x is IPropertyMapWithColumn <T>).Cast <IPropertyMapWithColumn <T> >(); var writableColumns = columnProperties.Where(x => !x.SetterIsPrivate).ToList(); var columnNames = writableColumns.Select(x => x.ColumnName).ToList(); var paramterNames = writableColumns.Select(x => x.ColumnName).ToList(); if (!string.IsNullOrEmpty(ParentColumnName)) { columnNames.Add(ParentColumnName); paramterNames.Add(ParentColumnName); command.AddParameter(ParentColumnName, parentId); } var sql = string.Format("insert into {0} ({1}) values ({2})", TableName, string.Join(",", columnNames.ToArray()), string.Join(",", paramterNames.Select(x => SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX + x).ToArray())); command.SetCommandText(sql); foreach (var map in writableColumns) { command.AddParameter(map.ColumnName, map.GetColumnValue(entity)); } return(command); }
public IEnumerable <Person> GetPesonsWhoHavePosted() { var command = new DbCommandSpec() .SetCommandText("select p.* from Person p inner join Post on Post.PosterId = p.Id"); return(UnitOfWork.Current.Session.List <Person>(command)); }
public DbCommandSpec GetUpdateCommand(IEntity entity, int?parentId) { var command = new DbCommandSpec(); var columnProperties = propertyMaps .Where(x => x is IPropertyMapWithColumn <T>) .Cast <IPropertyMapWithColumn <T> >() .ToList(); var setPairs = columnProperties .Where(x => x.ColumnName != "Id") .Select(x => string.Format("{0}={1}{0}", x.ColumnName, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX)) .ToList(); if (!string.IsNullOrEmpty(ParentColumnName)) { setPairs.Add(string.Format("{0}={1}{0}", ParentColumnName, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX)); command.AddParameter(ParentColumnName, parentId); } var sql = string.Format("update {0} set {1} where Id = {2}Id", TableName, string.Join(",", setPairs.ToArray()), SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX); command.AddParameter("Id", entity.Id); command.SetCommandText(sql); foreach (var map in columnProperties) { command.AddParameter(map.ColumnName, map.GetColumnValue(entity)); } return(command); }
public long GetTotalPostCount(int personId) { var command = new DbCommandSpec() .SetCommandText("select count(*) from Post p where p.PosterId = @personId") .AddParameter("@personId", personId); return(UnitOfWork.Current.Session.ExecuteScalar <long>(command)); }
private void RecordMigration(IDatabaseMigration migration) { var migrationsTableExistsCommand = new DbCommandSpec() .SetCommandText(string.Format("insert into {0} (Name) values ({1}name)", MIGRATIONS_TABLE_NAME, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX)) .AddParameter("name", migration.Name); UnitOfWork.Current.Session.ExecuteNonQuery(migrationsTableExistsCommand); }
private void RecordMigration(IDatabaseMigration migration) { var migrationsTableExistsCommand = new DbCommandSpec() .SetCommandText(string.Format("insert into {0} ({1}) values ({2})", MIGRATIONS_TABLE_NAME, session.DbAdapter.Quote(MIGRATION_NAME_COLUMN_NAME), session.DbAdapter.FormatParameterName("name"))) .AddParameter("name", migration.Name); session.ExecuteNonQuery(migrationsTableExistsCommand); }
private bool PreviouslyRun(IDatabaseMigration migration) { var command = new DbCommandSpec() .SetCommandText(string.Format("select count(*) from {0} where Name = {1}name", MIGRATIONS_TABLE_NAME, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX)) .AddParameter("name", migration.Name); var result = (long)UnitOfWork.Current.Session.ExecuteScalar(command); return(result > 0); }
private bool PreviouslyRun(IDatabaseMigration migration) { var command = new DbCommandSpec() .SetCommandText(string.Format("select count(*) from {0} where {1} = {2}", MIGRATIONS_TABLE_NAME, session.DbAdapter.Quote(MIGRATION_NAME_COLUMN_NAME), session.DbAdapter.FormatParameterName("name"))) .AddParameter("name", migration.Name); var result = session.ExecuteScalar(command); return Convert.ToInt64(result) > 0; }
private void CreateMigrationsTableIfNotExists() { var tableExists = session.TableExists(MIGRATIONS_TABLE_NAME); if (tableExists) { return; } var createMigrationsTable = new DbCommandSpec() .SetCommandText(string.Format("create table {0} ({1} {2})", MIGRATIONS_TABLE_NAME, session.DbAdapter.Quote(MIGRATION_NAME_COLUMN_NAME), session.DbAdapter.GetGeneralStringType())); session.ExecuteNonQuery(createMigrationsTable); Log.Debug("Migrations table created"); }
private void CreateMigrationsTableIfNotExists() { var existsResult = UnitOfWork.Current.Session.ExecuteQuery( dbAdapter.CreateGetTableMetadataCommand(MIGRATIONS_TABLE_NAME)); if (existsResult.Count() != 0) { return; } var createMigrationsTable = new DbCommandSpec() .SetCommandText(string.Format("create table {0} (Name varchar(200))", MIGRATIONS_TABLE_NAME)); UnitOfWork.Current.Session.ExecuteNonQuery(createMigrationsTable); Log.Debug("Migrations table created"); }
public DbCommandSpec GetFindCommand(IList <Parameter> parameters, IList <string> condtions) { var command = new DbCommandSpec(); foreach (var parameter in parameters) { command.AddParameters(parameter); } var sql = BaseSelectSql; if (condtions.Count > 0) { sql += " where " + string.Join(" and ", condtions.ToArray()); } command.SetCommandText(sql); return(command); }
public IList <IDictionary <string, object> > List(DbCommandSpec commandSpec) { return(ExecuteQuery(commandSpec).ToList()); }
public void ExecuteNonQuery(DbCommandSpec commandSpec) { var command = commandSpec.CreateCommand(dbAdapter, connection); Try(command.ExecuteNonQuery); }
public IList <T> List <T>(DbCommandSpec commandSpec) where T : class, IEntity, new() { var entityMap = domainMap.GetMapFor <T>(); return(List(commandSpec).Select(x => entityMap.BuildFrom(x, this)).ToList()); }
public object ExecuteScalar(DbCommandSpec commandSpec) { var command = commandSpec.CreateCommand(dbAdapter, connection); return(Try(command.ExecuteScalar)); }
public IEnumerable <IDictionary <string, object> > ExecuteQuery(DbCommandSpec commandSpec) { var command = commandSpec.CreateCommand(dbAdapter, connection); return(Try(() => ExecuteQuery(command))); }
private void Execute (DbCommandSpec command) { UnitOfWork.Current.Session.ExecuteNonQuery (command); }
private void Execute(DbCommandSpec command) { UnitOfWork.Current.Session.ExecuteNonQuery(command); }