public override bool Equals(object obj) { if (this == obj) { return(true); } if (obj is PgTrigger trigger) { var equals = Before == trigger.Before && ForEachRow == trigger.ForEachRow && Function.Equals(trigger.Function) && Name.Equals(trigger.Name) && OnDelete == trigger.OnDelete && OnInsert == trigger.OnInsert && OnUpdate == trigger.OnUpdate && OnTruncate == trigger.OnTruncate && TableName.Equals(trigger.TableName); if (!equals) { return(false); } return((UpdateColumns.Count == 0 && trigger.UpdateColumns.Count == 0) || UpdateColumns.All(t1 => trigger.UpdateColumns.Any(t1.EqualsIgnoreCase))); } return(false); }
protected override string GetUpdateSql() { string setParamenters = string.Join(", ", UpdateColumns.Select(p => $"`{p.Name}`=@{p.Name}")); string primaryParamenters = string.Join(" AND ", Primary.Select(p => $"`{p.Name}`=@{p.Name}")); var sqlBuilder = new StringBuilder(); sqlBuilder.AppendFormat("UPDATE `{0}`.`{1}` SET {2} WHERE {3};", Schema.Database, Schema.TableName, setParamenters, primaryParamenters); return(sqlBuilder.ToString()); }
/// <summary> /// Perform update table with data from an anonymous object /// </summary> /// <typeparam name="T"></typeparam> /// <param name="db"></param> /// <param name="columns">Select which columns to update from an anonymous object</param> /// <param name="cfg">Configure name and other</param> /// <returns></returns> public static IBuildUpdateTableFrom <T> UpdateFrom <T>(this DbConnection db, Func <IUpdateColumns, IColumnsToUpdate <T> > columns, Action <IHelperOptions> cfg) where T : class { var options = new HelperOptions(); var u = new UpdateColumns(); cfg(options); options.EnsureTableName(db.GetPocoInfo <T>()); var builder = columns(u) as UpdateColumns.CreateBuilder <T>; var executor = new CustomSqlExecutor(db); var updater = new UpdateTableBuilder <T>(executor, db.GetExpressionSqlGenerator(), db.Provider(), options); builder.PopulateBuilder(updater); return(updater); }
protected override string GetSelectSql() { string selectParamenters = string.Join(", ", UpdateColumns.Select(p => $"[{p.Name}]")); string primaryParamenters = string.Join(" AND ", Primary.Select(p => $"[{p.Name}]=@{p.Name}")); var sqlBuilder = new StringBuilder(); sqlBuilder.AppendFormat("USE {0}; SELECT {1} FROM [{2}] WHERE {3};", Schema.Database, selectParamenters, Schema.TableName, primaryParamenters); return(sqlBuilder.ToString()); }
public override string ToPlainQuery() { StringBuilder sb = new StringBuilder(); sb.AppendFormat("UPDATE {0} SET {1}", UpdateTable, UpdateColumns.ToString()); if (FromTableOrQuery() != null) { sb.AppendFormat(" FROM {0}{1}", FromTableOrQuery(), FromQuery == null ? "" : $" AS {FromQuery.Item2}"); } sb.Append(JoinString); if (WhereCondition != null) { sb.AppendFormat(" WHERE {0}", WhereCondition.ToString()); } return(sb.ToString().Trim()); }
public void AddUpdateColumn(string item) { UpdateColumns.Add(item); }