private void SetOperation(string commandText)
        {
            _operation = _proxy.Operations.SingleOrDefault(o => o.Name == commandText);

            if (_operation == null)
            {
                throw new Exception("Operation '" + CommandText + "' not found");
            }

            var wcfParameters = (WcfParameterCollection)Parameters;

            if (wcfParameters == null)
            {
                Parameters = wcfParameters = new WcfParameterCollection();
            }

            foreach (var p in _operation.GetParameters())
            {
                if (wcfParameters.All(wp => wp.ParameterName != p.Name))
                {
                    wcfParameters.Add(new WcfCommandParameter {
                        ParameterName = p.Name
                    });
                }
            }
        }
        public IDataParameter CreateParameter()
        {
            if (Parameters == null)
            {
                Parameters = new WcfParameterCollection();
            }

            return(new WcfCommandParameter());
        }