/// <summary>
        ///     Gets rows from the datasource based on the AK_BillOfMaterials_ProductAssemblyID_ComponentID_StartDate index.
        /// </summary>
        /// <param name="start">Row number at which to start reading.</param>
        /// <param name="pageLength">Number of rows to return.</param>
        /// <param name="_productAssemblyId">Parent product identification number. Foreign key to Product.ProductID.</param>
        /// <param name="_componentId">Component identification number. Foreign key to Product.ProductID.</param>
        /// <param name="_startDate">Date the component started being used in the assembly item.</param>
        /// <param name="transactionManager"><see cref="TransactionManager"/> object</param>
        /// <param name="count">out parameter to get total records for query</param>
        /// <remarks></remarks>
        /// <returns>Returns an instance of the <see cref="Nettiers.AdventureWorks.Entities.BillOfMaterials"/> class.</returns>
        public override Nettiers.AdventureWorks.Entities.BillOfMaterials GetByProductAssemblyIdComponentIdStartDate(TransactionManager transactionManager, System.Int32?_productAssemblyId, System.Int32 _componentId, System.DateTime _startDate, int start, int pageLength, out int count)
        {
            try
            {
                WsProxy.AdventureWorksServices proxy = new WsProxy.AdventureWorksServices();
                proxy.Url = Url;
                WsProxy.BillOfMaterials items = proxy.BillOfMaterialsProvider_GetByProductAssemblyIdComponentIdStartDate(_productAssemblyId, _componentId, _startDate, start, pageLength, 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;
            }
        }