/// <summary>
        /// Loads action providers service actions
        /// </summary>
        /// <param name="operationContext">operation Context</param>
        /// <returns>Enumerable of Service Actions</returns>
        internal IEnumerable<ServiceAction> GetServiceActionsInternal(DataServiceOperationContext operationContext)
        {
            if (this.dataServiceActions == null)
            {
                var metadataProvider = (IDataServiceMetadataProvider)operationContext.GetService(typeof(IDataServiceMetadataProvider));
                this.dataServiceActions = this.LoadServiceActions(metadataProvider).ToArray();
            }

            return this.dataServiceActions;
        }
        private ODataEntry CreateEntry(Customer customer, DataServiceOperationContext operationContext)
        {
            if (customer == null) return null;

            var entry = new ODataEntry();
            entry.EditLink = new Uri(operationContext.AbsoluteServiceUri, "Customers(" + customer.ID + ")");
            entry.Id = entry.EditLink;

            var metadataProvider = (IDataServiceMetadataProvider)operationContext.GetService(typeof(IDataServiceMetadataProvider));
            ResourceType rt;
            metadataProvider.TryResolveResourceType(customer.GetType().FullName, out rt);
            entry.Properties = GetProperties(customer, rt);
            entry.TypeName = rt.FullName;
            return entry;
        }