private MySqlCommand DeleteObject(MySqlConnection connection, MySqlTransaction transaction, IPersistableObject obj) { string commandText; if (!deleteCommands.TryGetValue(obj.GetType(), out commandText)) { bool startComma = false; string where = ""; foreach (var column in obj.DbPrimaryKey) { if (startComma) { where += " AND "; } else { startComma = true; } where += string.Format("`{0}`=@{0}", column.Column); } commandText = string.Format("DELETE FROM `{0}` WHERE {1} LIMIT 1", obj.DbTable, where); deleteCommands[obj.GetType()] = commandText; } MySqlCommand command = connection.CreateCommand(); command.CommandText = commandText; if (transaction != null) { command.Transaction = transaction; } foreach (var column in obj.DbPrimaryKey) { AddParameter(command, column, DataRowVersion.Original); } return(command); }
public void SetTranslation(IPersistableObject persistableObject, string propertyName, string value) { PassedTranslationValue = value; }
public string GetTransalation(IPersistableObject persistableObject, string propertyName) { IsGetTranslationCalled = true; return(""); }
private MySqlCommand CreateObject(MySqlConnection connection, MySqlTransaction transaction, IPersistableObject obj) { string commandText; if (!createCommands.TryGetValue(obj.GetType(), out commandText)) { string columns = ""; string values = ""; bool startComma = false; foreach (var column in obj.DbPrimaryKey) { if (startComma) { columns += ","; values += ","; } startComma = true; columns += string.Format("`{0}`", column.Column); values += "@" + column.Column; } foreach (var column in obj.DbColumns) { if (startComma) { columns += ","; values += ","; } startComma = true; columns += string.Format("`{0}`", column.Column); values += "@" + column.Column; } commandText = string.Format("INSERT INTO `{0}` ({1}) VALUES ({2})", obj.DbTable, columns, values); createCommands[obj.GetType()] = commandText; } MySqlCommand command = connection.CreateCommand(); command.CommandText = commandText; if (transaction != null) { command.Transaction = transaction; } foreach (var column in obj.DbColumns) { AddParameter(command, column); } foreach (var column in obj.DbPrimaryKey) { AddParameter(command, column); } return(command); }
private MySqlCommand UpdateObject(MySqlConnection connection, MySqlTransaction transaction, IPersistableObject obj) { string commandText; DbColumn[] columns = obj.DbColumns; if (columns.Length == 0) { return(null); } if (!saveCommands.TryGetValue(obj.GetType(), out commandText)) { bool startComma = false; string values = ""; foreach (var column in obj.DbColumns) { if (startComma) { values += ", "; } else { startComma = true; } values += string.Format("`{0}`=@{0}", column.Column); } startComma = false; string where = ""; foreach (var column in obj.DbPrimaryKey) { if (startComma) { where += " AND "; } else { startComma = true; } where += string.Format("{0}=@{0}", column.Column); } commandText = string.Format("UPDATE `{0}` SET {1} WHERE {2} LIMIT 1", obj.DbTable, values, where); saveCommands[obj.GetType()] = commandText; } MySqlCommand command = connection.CreateCommand(); command.CommandText = commandText; if (transaction != null) { command.Transaction = transaction; } foreach (var column in columns) { AddParameter(command, column); } foreach (var column in obj.DbPrimaryKey) { AddParameter(command, column); } return(command); }