/// <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); }
/// <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); }