Criar um aplicativo de consulta fixa

Atualizado: fevereiro de 2014

 

Logotipo do DataMarket

Use as Classes de Serviço para download no Visual Studio para consumir programaticamente conjuntos de dados do Marketplace que o editor de dados especificou como conjuntos de dados de consulta fixa.

Antes de prosseguir, verifique se você tem:

  • Uma conta válida do Windows Live ID. Se não tiver uma Live ID, vá para a página inicial do Windows Live e inscreva-se.

  • Uma conta válida do Marketplace. Se não tiver uma Marketplace, vá para o tópico Criar sua conta do Marketplace e siga as instruções.

  • Uma assinatura para o conjunto de dados de consulta fixa do Marketplace que você deseja usar em seu aplicativo. Se ainda não se inscreveu em um conjunto de dados de consulta fixa, acesse Assinar uma oferta de dados e siga as instruções.

 

Seção Descrição

Etapa 1: Criar seu projeto no Visual Studio

Etapas a serem executadas no Visual Studio para iniciar um novo projeto de console para consumir dados do Marketplace.

Etapa 2: Adicionar a classe de serviço para o serviço de dados

As etapas necessárias para adicionar uma referência de serviço para consumir dados do Marketplace.

Etapa 3: Adicionar System.Data.Services.Client

Adicione uma referência ao System.Data.Services.Client ao seu projeto.

Etapa 4: Consumir dados com código gerenciado

Código que você grava para consumir um conjunto de dados de consulta fixa do Marketplace.

Código do programa concluído

Código para o programa concluído.

Metadados

Exemplo de metadados XML para esta classe de consulta fixa.

  1. Localize o Visual Studio no Menu Iniciar.

  2. Clique com botão direito do mouse em Visual Studio.

  3. No menu suspenso, clique em Executar como administrador.

  4. Quando for perguntado se deseja permitir que este programa (devenv.exe) faça alterações em seu computador, clique em Sim.

  1. Na página de início do Visual Studio, selecione Novo Projeto...

  2. Selecione Visual C# e Aplicativo de Console (Visual Basic e Aplicativo de Console se preferir o Visual Basic) na caixa de diálogo Novo Projeto.

  3. Na lista suspensa à esquerda, na parte superior da caixa de diálogo Novo Projeto, selecione .NET Framework 4.

    Padrões do Visual Studio 2010 para .NET Framework 4. Se usar uma versão anterior do Visual Studio e não tiver o .NET Framework 4 instalado, vá para a página de download do .NET Framework 4 para baixar e instalá-lo.

  4. Dê um nome significativo ao projeto. Por exemplo, para este projeto nomeie-o CensusDemographics.

  5. Clique em OK.

Após iniciar o Visual Studio como administrador e criar um novo aplicativo de console (Etapa 1), baixe e adicione a classe de serviço para o serviço de dados que você deseja consumir.

  1. Vá para o Marketplace.

  2. Selecione a guia Meus Dados.

  3. Encontre o serviço de dados Alteryx – Dados Demográficos de Censo.

  4. Clique em Usar à direita do nome do serviço.
    Isso leva você para a “Página de Detalhes”.

  5. Clique em Biblioteca de Classes do .NET C# no lado direito da página.

    Figura 6.2 – Biblioteca de classes de consultas fixas


    Figura 1 – Baixar a biblioteca de classes do .NET C#

  6. Clique no botão Salvar na caixa de diálogo.

  7. Salve o arquivo CensusDemographicDataContainer.cs na pasta do projeto.

    TipDica
    Se pretender usar mais de um serviço de dados do mesmo editor de dados neste projeto, verifique se que cada arquivo da biblioteca de classes tem um nome exclusivo e significativo para não substituir um arquivo de classe de serviço por outro.

  1. Volte ao projeto do Visual Studio.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no nome do projeto (que está em negrito).

  3. Selecione Adicionar Item Existente no menu suspenso.

  4. Selecione a classe de proxy de serviço que você acabou de baixar para sua pasta do projeto.

  5. Clique em Adicionar.

  6. Clique duas vezes no nome do arquivo no Gerenciador de Soluções.

  7. Encontre o namespace para esta classe de serviço.
    Por exemplo, namespace Alteryx.

  8. Adicione o seguinte código na parte superior de quaisquer arquivos de código que usam conjuntos de dados do Marketplace.

    
    using System.Net;  // needed for authentication
    using Alteryx;     // the namespace of your service class
    
    

Se vários conjuntos de dados estiverem sendo usados em um único aplicativo, repita as etapas 2 a 8 para cada serviço de dados.

Além da classe de serviço para o conjunto de dados, adicione uma referência para System.Data.Services.Client ao seu projeto.

  1. Abra o Gerenciador de Soluções.

  2. Clique com o botão direito do mouse em Referências.

  3. No menu suspenso selecione Adicionar Referência.

  4. Na caixa de diálogo, clique na guia .NET.

  5. Localize System.Data.Services.Client.

  6. Clique em OK.

Depois que as classes de serviço forem corretamente importadas e uma referência para System.Data.Services.Client for adicionada, invoque os métodos da classe de contêiner para consultar o conjunto de dados.

O código a seguir define um aplicativo de console simples que usa o conjunto de dados CensusDemographicDataContainer.cs. É importante observar que o conjunto de dados específico que está sendo usado, pois as classes de serviço têm métodos pré-configurados que expõem os parâmetros de serviço como parâmetros de método fortemente tipados no código do aplicativo e os nomes simbólicos dos objetos da classe de serviço são exclusivos para o conjunto de dados.

  1. Crie uma classe pública CensusDemographicData no namespace do seu projeto.

  2. Crie duas variáveis privadas em sua classe.

    1. Um URI para o serviço.
      private Uri serviceUri;

    2. Um contêiner de serviço para suas credenciais de autenticação.
      private CensusDemographicDataContainer context;

    
    class CensusDemographicData
    {
        private Uri serviceUri;
        private CensusDemographicDataContainer context;
    }
    
    
  3. Adicione um construtor para a classe CensusDemographicData.
    O construtor inicializa as duas variáveis privadas e as credenciais do usuário.
    O ROOT_SERVICE_URL é a URL raiz do serviço. (Consulte Get the Service Root URL para saber como encontrar a URL raiz do serviço.)
    O context é o contêiner de serviço que é usado para as credenciais do usuário.
    A propriedade IgnoreMissingProperties fica definida como true para tornar o cliente robusto para as propriedades que estão sendo adicionadas ao tipo no servidor. (Consulte a documentação do MSDN para obter mais informações.)
    USER_ID é sua Live ID.
    SECURE_ACCOUNT_KEY é a chave de conta do Marketplace que você está usando para este aplicativo. (Consulte Gerenciar sua conta do Marketplace).

    
    class CensusDemographicData
    {
        private Uri serviceUri;
        private CensusDemographicDataContainer context;
    
        // class constructor
        public CensusDemographicData()
        {
            serviceUri = new Uri(ROOT_SERVICE_URL);
            context = new CensusDemographicDataContainer(serviceUri);
            context.IgnoreMissingProperties = true;
            context.Credentials = new NetworkCredential(USER_ID, 
                                                        SECURE_ACCOUNT_KEY);
        }
    }
    
    
  4. Crie um método público (Sub) na classe CensusDemographicData que retorna uma lista genérica.
    Para nosso programa, o tipo genérico é CensusDemographicDataEntity.
    Este método consulta o serviço de dados e, se for bem-sucedido, retorna o conjunto de resultados como uma IList<> (IList (Of )). Se a consulta falhar por qualquer motivo, o método retorna um null (Nothing).

    
    class CensusDemographicData
    {
        private Uri serviceUri;
        private CensusDemographicDataContainer context;
        // constructor
        public CensusDemographicData()
        {
            serviceUri = new Uri(ROOT_SERVICE_URL);
            context = new CensusDemographicDataContainer(serviceUri);
            context.IgnoreMissingProperties = true;
            context.Credentials = new NetworkCredential(USER_ID, 
                                                        SECURE_ACCOUNT_KEY);
        }
    
        // the method that queries the service and returns the IList<> of demographic data
        public IList<CensusDemographicDataEntity> GetCensusDemographicData()
        {
            IEnumerable<CensusDemographicDataEntity> query;
    
            query = context.GetCensusDemographicData(LONGITUDE,LATITUDE,RADIUS,null);
            // The function GetCensusDemographicData is the fixed web function that you can use to request data from this service
            //    It is found in the service class you downloaded and added to your project.
            // Note: either of the last two parameters may be null but both cannot be null
    
            try
            {
                return query.ToList();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Census ERROR {0}",ex.Message);
                return null;
            }
        }
    }
    
    

  1. Grave seu método Main() (Sub Main()) com duas variáveis particulares.
    Uma IList genérica que recebe a lista de dados do seu método.
    Uma variável para uma instância de sua classe.

    
    static void Main(string[] args)
    {
        IList<CensusDemographicDataEntity> demographicsList;
        CensusDemographicData dataClass; 
    }
    
    
  2. Adicione o código para principal que faz uso de sua classe e seu método.

    1. Crie uma instância da classe CensusDemographicdata.

    2. Chame o método GetCensusDemographicData público.

    3. Se o método retornar um loop de lista através da lista e imprimir o conteúdo.

    
    static void Main(string[] args)
    {
        IList<CensusDemographicDataEntity> demographicList;
        CensusDemographicData dataClass; 
    
        dataClass = new CensusDemographicData();
        demographicsList = dataClass.GetCensusDemographicData();
    
        if (demographicsList != null)
        {
            Console.WriteLine("Demographic Data");
            Console.WriteLine("0,-15} {1,10} {2,6} {3,4}", "Name", 
                                                           "Population", 
                                                           "Female", 
                                                           "Male");
            foreach (CensusDemographicDataEntity entity in demographicList)
                Console.WriteLine("{0,-15} {1,10} {2,6} {3,4}", entity.NAME,
                                                                entity.POP00,
                                                                entity.SEX00FEM,
                                                                entity.SEX00MAL);
                }
                Console.Write("Tap any key to end. ");
                Console.ReadKey();
        }
    }
    
    


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;           // needed for authentication
using System.Text;
using Alteryx;              // service class for this data service

namespace FixedDataQuery
{
    //============================================ Program class
    class Program
    {
        static void Main(string[] args)
        {
            IList<CensusDemographicDataEntity> demographicList;
            CensusDemographicData censusData = new CensusDemographicData();
            demographicList = censusData.GetCensusDemographicData();

            //============================================ CENSUS DEMOGRAPHIC DATA OUTPUT
            // confirm data was returned from query
            if (demographicList != null)
            {
                // print column headings
                Console.WriteLine("Demographic Data");
                Console.WriteLine("{0,-15} {1,10} {2,6} {3,4}", "Name", 
                                                                "Population", 
                                                                "Female", 
                                                                "Male");
                // print query results
                foreach (CensusDemographicDataEntity entity in demographicList)
                    Console.WriteLine("{0,-15} {1,10} {2,6} {3,4}", entity.NAME,
                                                                    entity.POP00,
                                                                    entity.SEX00FEM,
                                                                    entity.SEX00MAL);
            }
            // pause until a key is struck
            Console.Write("Tap any key to end. ");
            Console.ReadKey();
            Console.WriteLine();
        }
    }

    //============================================ CensusDemographicData class
    class CensusDemographicData
    {
        private const string USER_ID = "yourLiveId";
        private const string SECURE_ACCOUNT_ID = "yourMarketplaceAccountKey";  // not your Live password
        private const string ROOT_SERVICE_URL = "https://api.datamarket.azure.com/Data.ashx/Alteryx/CensusDemographicData";

        private const double LONGITUDE = 47.394;
        private const double LATITUDE = -122.392;
        private const double RADIUS = 10.0; 

        private Uri serviceUri;
        private CensusDemographicDataContainer context;

        // ------ constructor
        public CensusDemographicData()
        {
            serviceUri = new Uri(ROOT_SERVICE_URL);
            context = new CensusDemographicDataContainer(serviceUri);
            context.IgnoreMissingProperties = true;
            context.Credentials = new NetworkCredential(USER_ID,
                                                        SECURE_ACCOUNT_ID);
        }

        // ------ method that queries the dataset and returns the resultset (or null)
        public IList<CensusDemographicDataEntity> GetCensusDemographicData()
        {
            IEnumerable<CensusDemographicDataEntity> query;

            query = context.GetCensusDemographicData(LONGITUDE,LATITUDE,RADIUS,null);
            // The function GetCensusDemographicData is the fixed web function that you can use to request data from this service
            // Note: either of the last two parameters may be null but both cannot be null

            try
            {
                return query.ToList();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Census ERROR {0}",ex.Message);
                return null;
            }
        }
    }
}

Os metadados do conjunto de dados informa o intellisense à medida que você escreve seu código. Se o IDE não suportar o intellisense ou o intellisense não funcionar, você pode obter os metadados do serviço.

  1. Obtenha o URI raiz do serviço do conjunto de dados.
    Consulte a seção Get the Service Root URL para obter instruções sobre como obter o URI raiz do serviço.

  2. Adicione /$metadata ao final da URL raiz do seu serviço.
    Por exemplo, se a URL raiz do serviço for https://datamarket.azure.com/Data.ashx/fabrikam.com/inventory, a URL dos metadados é https://datamarket.azure.com/Data.ashx/fabrikam.com/inventory/$metadata.

  3. Navegue até a URL de metadados.

  4. Analise os metadados.
    Os seguintes metadados destinam-se ao serviço de dados Alteryx – Dados Demográficos de Censo.


<?xml version="1.0" encoding="utf-8" ?> 
<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" xmlns:dr="http://schemas.microsoft.com/dallas/2010/04">
   <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="1.0">
      <Schema xmlns="http://schemas.microsoft.com/ado/2009/08/edm" Namespace="Alteryx" Alias="Alteryx">
         <EntityContainer Name="CensusDemographicDataContainer">
            <EntitySet Name="CensusDemographicDataEntitySet" EntityType="Alteryx.CensusDemographicDataEntity" /> 
                   <FunctionImport Name="GetCensusDemographicData" EntitySet="CensusDemographicDataEntitySet" ReturnType="Collection(Alteryx.CensusDemographicDataEntity)">
               <Parameter Name="Latitude" Type="Edm.Double" Mode="In" Nullable="false" /> 
               <Parameter Name="Longitude" Type="Edm.Double" Mode="In" Nullable="false" /> 
               <Parameter Name="Radius" Type="Edm.Double" Mode="In" Nullable="true" /> 
               <Parameter Name="Minutes" Type="Edm.Double" Mode="In" Nullable="true" /> 
            </FunctionImport>
         </EntityContainer>
         <EntityType Name="CensusDemographicDataEntity">
            <Property Name="NAME" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="KEY" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="POP00" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="SEX00FEM" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XSEX00FEM" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="SEX00MAL" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XSEX00MAL" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE000004" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE000509" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE001013" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE001014" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE001417" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE001820" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE002024" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE002124" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE002529" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE003034" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE003539" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE004044" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE004549" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE005054" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE00GT55" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE005559" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE006064" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE006569" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE007074" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE007579" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE008084" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XAGE00G85" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="AGE00MED" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00GR911" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00ASSOC" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00BACH" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00GRAD" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00HSCH" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00NSCH" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00LTGR9" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XEDU00SCOLL" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00AMIND" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00ASIAN" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00BLACK" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIS00HISP" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00HAWAI" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIS00NHISP" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00OTHER" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00MULT" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XRAC00WHITE" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN00LT10" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN001015" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN001520" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN002025" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN002530" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN003035" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN003540" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN004045" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN004550" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN005060" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN006075" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN0075100" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN0010025" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN0012550" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN0015020" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XHIN00GT200" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="HIN00MED" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="INC00AVEHH" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="INC00PCI" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="HOO00MEDN" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI00BF69" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI007079" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI008089" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI009094" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI009598" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="XYMI009900" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="HOU00STAB" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
            <Property Name="HOU00TURN" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" /> 
         </EntityType>
      </Schema>
   </edmx:DataServices>
</edmx:Edmx>

As informações importantes encontradas nos metadados incluem:

  • O nome da função Web fixa para esse conjunto de dados que você chama para solicitar dados e o tipo que retorna.
    <FunctionImport Name="GetCensusDemographicData" EntitySet="CensusDemographicDataEntitySet" ReturnType="Collection(Alteryx.CensusDemographicDataEntity)">


  • A ordem dos parâmetros que você passa para a função bem como o nome, tipo, modo e se é necessário ou não para cada parâmetro.
    <Parameter Name="Latitude" Type="Edm.Double" Mode="In" Nullable="false" />
    <Parameter Name="Longitude" Type="Edm.Double" Mode="In" Nullable="false" />
    <Parameter Name="Radius" Type="Edm.Double" Mode="In" Nullable="true" />
    <Parameter Name="Minutes" Type="Edm.Double" Mode="In" Nullable="true" />
    Observe que dois dos parâmetros exigem valores (Nullable="false") e dois onde os valores são opcionais (Nullable="true").


  • O nome, o tipo de dados, se null (Nothing) for um valor válido, dos campos retornados.
    <Property Name="HOU00TURN" Type="Edm.String" Nullable="true" dr:Queryable="false" dr:Returned="true" />
    Observe que, no conjunto de dados de consulta fixa, o atributo dr:Queryable é sempre “false”.


  • O nome dessa entidade do conjunto de dados.
    <EntityType Name="CensusDemographicDataEntity">


  • O nome do contêiner desse conjunto de dados.
    <EntityContainer Name="CensusDemographicDataContainer">


Mostrar: