private void Round(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions writer) { sb.Append("round("); sb.Append(writer.GetColumnsSql(method.Arguments[1])); sb.Append(","); sb.Append(writer.GetSql(method.Arguments[2])); sb.Append(")"); }
private void DateDiff(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions writer) { sb.Append("datediff("); sb.Append(method.Arguments[1].GetValue().ToString()).Append(","); sb.Append(writer.GetColumnsSql(method.Arguments[2])).Append(","); sb.Append(writer.GetColumnsSql(method.Arguments[3])); sb.Append(")"); }
private void MyConcat(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions writer) { foreach (var arg in method.Arguments[1].CastAs <NewArrayExpression>().Expressions) { sb.Append(writer.GetColumnsSql(arg)); sb.Append(" || "); } sb.RemoveLastIfEquals("|| "); }
public UpdateTableBuilder(IExecuteCustomSql executor, IGenerateSqlFromExpressions writer, IEscapeIdentifier utils, HelperOptions options) { _executor = executor; _writer = writer; _utils = utils; _options = options; _sb.Append($"update {utils.EscapeTableName(options.TableName)} set "); }
public SimpleSqlBuilder(HelperOptions options, IDbProvider provider, IGenerateSqlFromExpressions writer, ITableInfoFactory infos) { _options = options; _provider = provider; _info = options.Info; _writer = writer; _infos = infos; WriteFrom(provider, options); }
public SimpleSqlBuilder(HelperOptions options, IDbProvider provider, TableInfo info, IGenerateSqlFromExpressions writer) { _options = options; _provider = provider; _info = info; _writer = writer; options.EnsureTableName(_info); WriteFrom(provider, options); }
public string GetSql(MethodCallExpression method, IGenerateSqlFromExpressions manager) { var func = Functions.GetValueOrDefault(GetKey(method)); if (func == null) { throw new NotSupportedException("Unrecognized function {0}".ToFormat(method.Method.Name)); } var sb = new StringBuilder(); func(method, sb, manager); return(sb.ToString()); }
public DeleteTableBuilder(string tableName,IGenerateSqlFromExpressions writer) { _writer = writer; _sb.Append($"delete from {tableName}"); }
private void Max(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions manager) => sb.Append($"max({manager.GetColumnsSql(method.Arguments[1])})");
private void Sum(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions w) => sb.Append($"sum({w.GetColumnsSql(method.Arguments[1])})");
private void CountAll(MethodCallExpression method, StringBuilder sb, IGenerateSqlFromExpressions manager) => sb.Append("count(*)");
public DeleteTableBuilder(string tableName, IGenerateSqlFromExpressions writer) { _writer = writer; _sb.Append($"delete from {tableName}"); }
private void BetweenDates(MethodCallExpression arg1, StringBuilder sb, IGenerateSqlFromExpressions writer) { var date = writer.GetColumnsSql(arg1.Arguments[0]); sb.Append($"{date}>={writer.GetSql(arg1.Arguments[1])} and {date}<={writer.GetSql(arg1.Arguments[2])}"); }