public void Delete(T model) { string identityColumn = ClassManipulation.GetIdentityColumn <T>(); string sql = $@" Delete From {ClassManipulation.GetTableName<T>()} Where {identityColumn} = {string.Concat(ConnectionFactory.SqlParameter, identityColumn)}"; IConnection conn = ConnectionFactory.GetConnection(); var command = conn.Db.CreateCommand(); var param = command.CreateParameter(); param.Value = typeof(T).GetProperty(identityColumn).GetValue(model); param.ParameterName = identityColumn; command.Parameters.Add(param); command.CommandText = sql; command.ExecuteNonQuery(); }
public T Update(T model) { List <string> columns = new List <string>(); string identityColumn = ClassManipulation.GetIdentityColumn <T>(); foreach (var item in ClassManipulation.GetColumns <T>()) { columns.Add(item); } string sql = $" Update {ClassManipulation.GetTableName<T>()} Set "; for (var i = 0; i < columns.Count; i++) { sql += columns[i] + " = " + string.Concat(ConnectionFactory.SqlParameter, columns[i]); if (i + 1 != columns.Count) { sql += ","; } } sql += $" Where {identityColumn} = {string.Concat(ConnectionFactory.SqlParameter, identityColumn)}"; IConnection conn = ConnectionFactory.GetConnection(); var command = conn.Db.CreateCommand(); columns.Add(identityColumn); foreach (var item in columns) { var param = command.CreateParameter(); param.Value = typeof(T).GetProperty(item).GetValue(model); param.ParameterName = item; command.Parameters.Add(param); } command.CommandText = sql; command.ExecuteNonQuery(); return(model); }
public T Find(int identity) { string identityColumn = ClassManipulation.GetIdentityColumn <T>(); string sql = $@" Select * From {ClassManipulation.GetTableName<T>()} Where {identityColumn} = {string.Concat(ConnectionFactory.SqlParameter, identityColumn)}"; IConnection conn = ConnectionFactory.GetConnection(); var command = conn.Db.CreateCommand(); var param = command.CreateParameter(); param.Value = identity; param.ParameterName = identityColumn; command.Parameters.Add(param); command.CommandText = sql; using (IDataReader reader = command.ExecuteReader()) { return(DataReaderManipulation.DataReaderToClass <T>(reader)); } }
public T IdentityInsert(T model) { List <string> columns = new List <string>(); foreach (var item in ClassManipulation.GetColumns <T>()) { columns.Add(item); } string sql = $" Insert Into {ClassManipulation.GetTableName<T>()} ("; for (var i = 0; i < columns.Count; i++) { sql += columns[i]; if (i + 1 != columns.Count) { sql += ","; } } sql += ") values ("; for (var i = 0; i < columns.Count; i++) { sql += string.Concat(ConnectionFactory.SqlParameter, columns[i]); if (i + 1 != columns.Count) { sql += ","; } } sql += ")"; IConnection conn = ConnectionFactory.GetConnection(); var command = conn.Db.CreateCommand(); foreach (var item in columns) { var param = command.CreateParameter(); param.Value = typeof(T).GetProperty(item).GetValue(model); param.ParameterName = item; command.Parameters.Add(param); } command.CommandText = sql; var identityProp = typeof(T).GetProperty(ClassManipulation.GetIdentityColumn <T>()); command.ExecuteNonQuery(); int pkValue = 0; if (ConnectionFactory.ConnectionType == ConnectionEnum.MySql) { var cmmd = conn.Db.CreateCommand(); command.CommandText = "SELECT LAST_INSERT_ID()"; } else if (ConnectionFactory.ConnectionType == ConnectionEnum.SqlServer) { var cmmd = conn.Db.CreateCommand(); command.CommandText = "SELECT SCOPE_IDENTITY()"; } using (IDataReader reader = command.ExecuteReader()) { if (reader != null && reader.Read()) { pkValue = Convert.ToInt32(reader.GetInt64(0)); } identityProp.SetValue(model, pkValue); return(model); } }