public ProductResponse Fetch(ProductPkRequest request)
        {
            var entity = new ProductEntity();

            entity.ProductId = request.ProductId;

            var excludedIncludedFields = RepositoryHelper.ConvertStringToExcludedIncludedFields(EntityType, request.Select);
            var prefetchPath           = RepositoryHelper.ConvertStringToPrefetchPath(EntityType, request.Include, request.Select);

            using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter())
            {
                OnBeforeFetchProductPkRequest(adapter, request, entity, prefetchPath, excludedIncludedFields);
                if (adapter.FetchEntity(entity, prefetchPath, null, excludedIncludedFields))
                {
                    OnAfterFetchProductPkRequest(adapter, request, entity, prefetchPath, excludedIncludedFields);
                    return(new ProductResponse(entity.ToDto()));
                }
            }
            return(new ProductResponse(null));
        }
        public ProductResponse Fetch(ProductPkRequest request)
        {
            var entity = new ProductEntity();

            entity.ProductId = request.ProductId;

            var excludedIncludedFields = RepositoryHelper.ConvertStringToExcludedIncludedFields(EntityType, request.Select);
            var prefetchPath           = RepositoryHelper.ConvertStringToPrefetchPath(EntityType, request.Include, request.Select);

            using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter())
            {
                OnBeforeFetchProductPkRequest(adapter, request, entity, prefetchPath, excludedIncludedFields);

                var pkPredicate = adapter.CreatePrimaryKeyFilter(entity.Fields.PrimaryKeyFields);
                entity = base.Fetch(adapter, pkPredicate, prefetchPath, excludedIncludedFields, request.RCache);
                if (entity != null)
                {
                    OnAfterFetchProductPkRequest(adapter, request, entity, prefetchPath, excludedIncludedFields);
                    return(new ProductResponse(entity.ToDto()));
                }
            }
            return(new ProductResponse(null));
        }
 partial void OnAfterFetchProductPkRequest(IDataAccessAdapter adapter, ProductPkRequest request, ProductEntity entity, IPrefetchPath2 prefetchPath, ExcludeIncludeFieldsList excludedIncludedFields);