public SqlTextCommandAdapter(SqlPersistenceConnection connection, SqlTextCommand command) : base(connection, command)
        {
            this.SqlCommand             = new SqlCommand(command.CommandText);
            this.SqlCommand.CommandType = command.CommandType;

            foreach (PersistenceParameter param in command.Parameters.Values)
            {
                var p = new SqlParameter()
                {
                    ParameterName = param.Name,
                    Value         = param.Value
                };

                if (param.Options != null)
                {
                    var options = (SqlPersistenceParameterOptions)param.Options;
                    if (options.Size != null)
                    {
                        p.Size = options.Size.Value;
                    }
                    if (options.SqlDbType != null)
                    {
                        p.SqlDbType = options.SqlDbType.Value;
                    }
                }

                this.SqlCommand.Parameters.Add(p);
            }
        }
コード例 #2
0
        internal SqlBulkAdapter(SqlPersistenceConnection connection, SqlBulkCommand action) : base(connection, action)
        {
            _bulk = new SqlBulkCopy(connection.DbConnection, action.BulkCopyOptions, null)
            {
                BatchSize            = action.BatchSize,
                DestinationTableName = action.TableName
            };

            _buffer = new DataTable("SqlBulkAdapter._buffer");
            foreach (PersistenceParameter param in action.Parameters.Values)
            {
                var options  = (SqlPersistenceParameterOptions)param.Options;
                var tableCol = new DataColumn(param.Name);
                if (options.Size != null)
                {
                    tableCol.MaxLength = options.Size.Value;
                }
                _buffer.Columns.Add(tableCol);
                _bulk.ColumnMappings.Add(new SqlBulkCopyColumnMapping(param.Name, param.Name));
            }
        }