Ejemplo n.º 1
0
        /// <summary>
        /// Visit a constant expression and fill in the sql script.
        /// </summary>
        /// <param name="expression"></param>
        /// <returns></returns>
        protected override Expression VisitConstant(ConstantExpression expression)
        {
            var sql = GenerateSqlScriptHelper.ConvertConstantIntoSqlScript(expression.Type, expression.Value);

            _builder.Append(sql);
            return(expression);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Visit the constant expression and fill in the T-SQL script.
        /// </summary>
        /// <param name="expression"></param>
        /// <returns></returns>
        protected override Expression VisitConstant(ConstantExpression expression)
        {
            var value        = expression.Value;
            var type         = expression.Type;
            var properties   = type.GetProperties();
            var columnNames  = new List <string>();
            var columnValues = new List <string>();

            foreach (var property in properties)
            {
                var columnName  = _mappingRuleTranslator.GetColumnName(type, property.Name);
                var columnValue = property.GetValue(value);
                var columnType  = _mappingRuleTranslator.GetColumnDefinition(type, property.Name).Type;
                columnNames.Add(columnName);
                columnValues.Add(GenerateSqlScriptHelper.ConvertConstantIntoSqlScript(columnType, columnValue));
            }

            var sqlRequest = string.Format("({0}) VALUES ({1})", string.Join(",", columnNames), string.Join(",", columnValues));

            _builder.Append(sqlRequest);
            return(expression);
        }