Ejemplo n.º 1
0
        /// <summary>
        /// 设置插入语句
        /// </summary>
        private string BuildInsertSql(List <IColumnDescriptor> batchInsertColumnList, out string batchInsertSql)
        {
            var sb = new StringBuilder();

            sb.Append("INSERT INTO {0} ");
            sb.Append("(");

            var valuesSql = new StringBuilder();

            //多租户
            if (_descriptor.IsTenant)
            {
                _descriptor.SqlAdapter.AppendQuote(sb, _descriptor.TenantIdColumnName);
                sb.Append(",");
                //要判断是否启用多租户,不启用的话默认0
                valuesSql.AppendFormat("{0},", _descriptor.DbOptions.EnableTenant ? TENANT_ID_PLACEHOLDER : "0");
            }

            foreach (var col in _descriptor.Columns)
            {
                //排除自增主键
                if (col.IsPrimaryKey && (_primaryKey.IsInt() || _primaryKey.IsLong()))
                {
                    continue;
                }

                _descriptor.SqlAdapter.AppendQuote(sb, col.Name);
                sb.Append(",");

                _descriptor.SqlAdapter.AppendParameter(valuesSql, col.PropertyInfo.Name);
                valuesSql.Append(",");

                batchInsertColumnList.Add(col);
            }

            //删除最后一个","
            sb.Remove(sb.Length - 1, 1);

            sb.Append(") VALUES");

            batchInsertSql = sb.ToString();

            sb.Append("(");

            //删除最后一个","
            if (valuesSql.Length > 0)
            {
                valuesSql.Remove(valuesSql.Length - 1, 1);
            }

            sb.Append(valuesSql);
            sb.Append(")");

            if (_descriptor.SqlAdapter.SqlDialect != SqlDialect.PostgreSQL)
            {
                sb.Append(";");
            }

            return(sb.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置插入语句
        /// </summary>
        private string BuildInsertSql(List <IColumnDescriptor> batchInsertColumnList, out string batchInsertSql)
        {
            var sb = new StringBuilder();

            sb.Append("INSERT INTO {0} ");
            sb.Append("(");

            var valuesSql = new StringBuilder();

            foreach (var col in _descriptor.Columns)
            {
                //排除自增主键
                if (col.IsPrimaryKey && (_primaryKey.IsInt() || _primaryKey.IsLong()))
                {
                    continue;
                }

                _descriptor.SqlAdapter.AppendQuote(sb, col.Name);
                sb.Append(",");

                _descriptor.SqlAdapter.AppendParameter(valuesSql, col.PropertyInfo.Name);
                valuesSql.Append(",");

                batchInsertColumnList.Add(col);
            }

            //删除最后一个","
            sb.Remove(sb.Length - 1, 1);

            sb.Append(") VALUES");

            batchInsertSql = sb.ToString();

            sb.Append("(");

            //删除最后一个","
            if (valuesSql.Length > 0)
            {
                valuesSql.Remove(valuesSql.Length - 1, 1);
            }

            sb.Append(valuesSql);
            sb.Append(")");

            if (_descriptor.SqlAdapter.SqlDialect != SqlDialect.PostgreSQL)
            {
                sb.Append(";");
            }

            return(sb.ToString());
        }