/// <summary> /// Insert /// </summary> /// <param name="expression">表达式树</param> /// <param name="isEnableNullValue">是否对null值属性进行sql拼接操作,默认:是</param> /// <returns>SqlBuilderCore</returns> public SqlBuilderCore <T> Insert(Expression <Func <object> > expression = null, bool isEnableNullValue = true) { this._sqlPack.Clear(); this._sqlPack.IsSingleTable = true; this._sqlPack.IsEnableNullValue = isEnableNullValue; this._sqlPack += $"INSERT INTO {this._sqlPack.GetTableName(typeof(T))} ({{0}}) {(this._sqlPack.DatabaseType == DatabaseType.Oracle ? "SELECT" : "VALUES")} "; SqlBuilderProvider.Insert(expression.Body, this._sqlPack); return(this); }
/// <summary> /// Insert /// </summary> /// <param name="expression">表达式树</param> /// <param name="sqlPack">sql打包对象</param> /// <returns>SqlPack</returns> public override SqlPack Insert(NewArrayExpression expression, SqlPack sqlPack) { foreach (Expression expressionItem in expression.Expressions) { SqlBuilderProvider.Insert(expressionItem, sqlPack); if (sqlPack.DatabaseType == DatabaseType.Oracle) { sqlPack += " UNION ALL SELECT "; } else { sqlPack += ","; } } if (sqlPack.Sql[sqlPack.Sql.Length - 1] == ',') { sqlPack.Sql.Remove(sqlPack.Sql.Length - 1, 1); } if (sqlPack.Sql.ToString().LastIndexOf(" UNION ALL SELECT ") > -1) { sqlPack.Sql.Remove(sqlPack.Sql.Length - 18, 18); } return(sqlPack); }
/// <summary> /// Insert /// </summary> /// <param name="expression">表达式树</param> /// <param name="sqlPack">sql打包对象</param> /// <returns>SqlPack</returns> public override SqlPack Insert(UnaryExpression expression, SqlPack sqlPack) { SqlBuilderProvider.Insert(expression.Operand, sqlPack); return(sqlPack); }