/// <summary>
        ///     Returns rows meeting the whereclause condition from the DataSource.
        /// </summary>
        /// <param name="transactionManager"><see cref="TransactionManager"/> object</param>
        /// <param name="start">Row number at which to start reading.</param>
        /// <param name="pagelen">Number of rows to return.</param>
        /// <param name="whereClause">Specifies the condition for the rows returned by a query (Name='John Doe', Name='John Doe' AND Id='1', Name='John Doe' OR Id='1').</param>
        /// <param name="count">Number of rows in the DataSource.</param>
        /// <remarks>Operators must be capitalized (OR, AND)</remarks>
        /// <returns>Returns a typed collection of Nettiers.AdventureWorks.Entities.BillOfMaterials objects.</returns>
        public override Nettiers.AdventureWorks.Entities.TList <BillOfMaterials> Find(TransactionManager transactionManager, string whereClause, int start, int pagelen, out int count)
        {
            try
            {
                WsProxy.AdventureWorksServices proxy = new WsProxy.AdventureWorksServices();
                proxy.Url = Url;

                WsProxy.BillOfMaterials[] items = proxy.BillOfMaterialsProvider_Find(whereClause, start, pagelen, out count);

                return(Convert(items));
            }
            catch (SoapException soex)
            {
                System.Diagnostics.Debug.WriteLine(soex);
                throw soex;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                throw ex;
            }
        }