Exemple #1
0
        private void AddUpdate(KdPgColumnDescriptor column, Func <TypedExpression, TypedExpression> template)
        {
            if (!UpdateParts.ContainsKey(column))
            {
                UpdateParts[column] = column.TypedExpression;
            }

            UpdateParts[column] = template(UpdateParts[column]);
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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));
 }