private void AddUpdate(KdPgColumnDescriptor column, Func <TypedExpression, TypedExpression> template) { if (!UpdateParts.ContainsKey(column)) { UpdateParts[column] = column.TypedExpression; } UpdateParts[column] = template(UpdateParts[column]); }
public void UseColumn(KdPgColumnDescriptor column) { if (_useAllColumns) { _columns = new List <KdPgColumnDescriptor>(); _useAllColumns = false; } _columns.Add(column); }
public static TypedExpression CurrSeqValueOfTable(KdPgColumnDescriptor column) { RawQuery rq = new RawQuery(); rq.Append("currval(pg_get_serial_sequence("); rq.Append(EscapeUtils.EscapePostgresString(EscapeUtils.QuoteTable(column.Table.Name, column.Table.Schema))); rq.Append(","); rq.Append(EscapeUtils.EscapePostgresString(column.Name)); rq.Append("))"); return(new TypedExpression(rq, KDPgValueTypeInstances.Integer)); }
public InsertQuery <TModel> UsePreviousInsertId <TRefModel>(Expression <Func <TModel, object> > field, Expression <Func <TRefModel, int> > idField) { var column = NodeVisitor.EvaluateExpressionToColumn(field); var refColumn = NodeVisitor.EvaluateExpressionToColumn(idField); if ((refColumn.Flags & KDPgColumnFlagsEnum.AutoIncrement) == 0) { throw new ArgumentException("Reference field must be auto increment"); } _idColumn = column; _idRefColumn = refColumn; return(this); }
public static object GetModelValueByColumn(object model, KdPgColumnDescriptor column) { return(column.PropertyInfo.GetValue(model)); }