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

            entity.ProductName = request.ProductName;

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

            using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter())
            {
                var predicate = entity.ConstructFilterForUCProductName();
                OnBeforeFetchProductUcProductNameRequest(adapter, request, entity, predicate, prefetchPath, excludedIncludedFields);
                if (adapter.FetchEntityUsingUniqueConstraint(entity, predicate, prefetchPath, null, excludedIncludedFields))
                {
                    OnAfterFetchProductUcProductNameRequest(adapter, request, entity, predicate, prefetchPath, excludedIncludedFields);
                    return(new ProductResponse(entity.ToDto()));
                }
            }
            return(new ProductResponse(null));
        }
 partial void OnAfterFetchProductUcProductNameRequest(IDataAccessAdapter adapter, ProductUcProductNameRequest request, ProductEntity entity, IPredicateExpression predicate, IPrefetchPath2 prefetchPath, ExcludeIncludeFieldsList excludedIncludedFields);