/// <summary> /// Checks the servers Information Schema to seee if a database table exists. /// </summary> /// <param name="Table">The table name</param> /// <returns></returns> public bool TableExists(string Table) { if (ReuseSingleConnection) { lock (ActiveConnection) { using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(ActiveConnection, "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = @0 AND TABLE_NAME = @1;", Database, Table)) using (MySqlDataReader Reader = Command.ExecuteReader()) { return(Reader.HasRows); } } } else { using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true)) { using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection, "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = @0 AND TABLE_NAME = @1;", Database, Table)) using (MySqlDataReader Reader = Command.ExecuteReader()) { return(Reader.HasRows); } } } }
public static int EFUpdate <T>(this MySqlConnection connection, T instance, string table) { using (var cmd = EntityCommandBuilder.BuildUpdateCommand(instance, table, connection)) { return(cmd.ExecuteNonQuery()); } }
public static int EFExecuteNonQuery(this MySqlConnection connection, string command, params object[] parameters) { using (var cmd = EntityCommandBuilder.BuildCommand(connection, command, parameters)) { return(cmd.ExecuteNonQuery()); } }
public static async Task <int> EFUpdateAsync <T>(this MySqlConnection connection, T instance, string table) { using (var cmd = EntityCommandBuilder.BuildUpdateCommand(instance, table, connection)) { return(await cmd.ExecuteNonQueryAsync()); } }
public static async Task <int> EFExecuteNonQueryAsync(this MySqlConnection connection, string command, params object[] parameters) { using (var cmd = EntityCommandBuilder.BuildCommand(connection, command, parameters)) { return(await cmd.ExecuteNonQueryAsync()); } }
public void Delete <T>(T Obj, string Table) { string value = EntityCommandBuilder.BuildDeleteCommandContent(Obj, Table, m_Assigner.AssignPrefix(), out var properties); lock (m_Commands) { m_Commands.AppendLine(value); } properties.Merge(m_MasterPropertiesList); }
public void ExecuteNonQuery(string command, params object[] parameters) { string value = EntityCommandBuilder.BuildCommandContent(command, m_Assigner.AssignPrefix(), out var properties, parameters); lock (m_Commands) { m_Commands.AppendLine(value); } properties.Merge(m_MasterPropertiesList); }
/// <summary> /// Updates an object in the specified database table. Object Model must have an associated Primary Key. /// </summary> public async Task UpdateAsync <T>(T Obj, string Table) { using (MySqlConnection Connection = GetConnection(autoOpen: false, forceNew: true)) { await Connection.OpenAsync(); using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, Connection)) { await Command.ExecuteNonQueryAsync(); } } }
public async Task DeleteTableAsync(string Table) { using (MySqlConnection Connection = GetConnection(autoOpen: false, forceNew: true)) { await Connection.OpenAsync(); using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection, "DROP TABLE @0", Table)) { await Command.ExecuteNonQueryAsync(); } await Connection.CloseAsync(); } }
/// <summary> /// Creates the object in the database table. /// </summary> /// <param name="Obj">The object to create</param> /// <param name="Table">The table to create the object in</param> public async Task InsertAsync <T>(T Obj, string Table) { using (MySqlConnection connection = GetConnection(autoOpen: false, forceNew: true)) { await connection.OpenAsync(); using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, connection)) { await Command.ExecuteNonQueryAsync(); } await connection.CloseAsync(); } }
private IEnumerable <IWriteCommand> GenerateWriteCommands() { var entries = ChangeTracker.Entries(); foreach (var entry in entries) { if (entry.State != EntityEntryState.NoChanges) { yield return(EntityCommandBuilder.CreateCommand(entry)); } } foreach (var command in CommandStaging.GetCommands()) { yield return(command); } }
public void WriteFromStaging() { var connection = TestConfiguration.GetConnection(); var pipeline = new EntityWriterPipeline <TestModel>(connection); var entity = new TestModel { Title = "EntityWriterPipelineTests.WriteFromCollection" }; var command = EntityCommandBuilder <TestModel> .CreateCommand( new EntityEntry <TestModel>(entity, EntityEntryState.Added) ); pipeline.StageCommand(command); pipeline.Write(); Assert.IsNotNull(entity.Id); }
public void DeleteTable(string Table) { if (ReuseSingleConnection) { lock (ActiveConnection) { using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(ActiveConnection, $"DROP TABLE `{Table.Replace("`", "``")}`")) { Command.ExecuteNonQuery(); } } } else { using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true)) { using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection, $"DROP TABLE `{Table.Replace("`", "``")}`")) { Command.ExecuteNonQuery(); } } } }
/// <summary> /// Updates an object in the specified database table. Object Model must have an associated Primary Key. /// </summary> public void Update <T>(T Obj, string Table) { if (ReuseSingleConnection) { lock (ActiveConnection) { using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, ActiveConnection)) { Command.ExecuteNonQuery(); } } } else { using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true)) { using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, Connection)) { Command.ExecuteNonQuery(); } } } }
/// <summary> /// Creates the object in the database table. /// </summary> /// <param name="Obj">The object to create</param> /// <param name="Table">The table to create the object in</param> public void Insert <T>(T Obj, string Table) { if (ReuseSingleConnection) { lock (ActiveConnection) { using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, ActiveConnection)) { Command.ExecuteNonQuery(); } } } else { using (MySqlConnection connection = GetConnection()) { connection.Open(); using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, connection)) { Command.ExecuteNonQuery(); } } } }
/// <summary> /// Deletes the object from a database table. Object Model must have an associated Primary Key. /// </summary> public void Delete <T>(T Obj, string Table) { if (ReuseSingleConnection) { lock (ActiveConnection) { using (MySqlCommand Command = EntityCommandBuilder.BuildDeleteCommand <T>(Obj, Table, ActiveConnection)) { Command.ExecuteNonQuery(); } } } else { using (MySqlConnection Connection = new MySqlConnection(ConnectionString)) { Connection.Open(); using (MySqlCommand Command = EntityCommandBuilder.BuildDeleteCommand <T>(Obj, Table, Connection)) { Command.ExecuteNonQuery(); } } } }
public EntityCommandBuilderTest() { this.commandBuilder = new EntityCommandBuilder(); }