Compartilhar via


Como a: Modelo um método da Web que retorna um DataSet

Este exemplo mostra como você pode modelo um método da Web que retorna um DataSet com uma tabela e três colunas.

Observação retornando um DataSet de um método da Web não é uma boa prática. O problema é que quando você retornar uma DataSet, consumidores precisam saber o subjacente Structure\endash they Não é possível inferir a estrutura a partir de WSDL. Você também precisa garantir que a estrutura interna de DataSet que obtém retornado pelo método da Web não nunca alteração; Se a estrutura interna for alterado, os autores metadados Business Data Catalog talvez precise reescrever o definição de aplicativo.

Exemplo

<Entity name="Customer">
   <Identifiers>
      <Identifier name="CustomerName" Typename="System.String" />
   </Identifiers>
   <Methods>
      <Method name="GetCustomers">
         <Parameters>
            <Parameter Direction="In" name="language">
               <TypeDescriptor Typename="System.String" name="language">
               <DefaultValues>
                  <DefaultValue MethodInstancename="CustomerSpecificFinderInstance" Type="System.String">en-us</DefaultValue>
                  <DefaultValue MethodInstancename="CustomerFinderInstance" Type="System.String">en-us</DefaultValue>
               </DefaultValues>
            </TypeDescriptor>
         </Parameter>
         <Parameter Direction="Return" name="GetCustomersResult">
            <TypeDescriptor Typename="Catalogs.ServiceDataSetContract, Catalogs" name="GetCustomersResult">
               <TypeDescriptors>
                  <TypeDescriptor Typename="System.Data.DataSet, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Value">
                     <TypeDescriptors>
                        <TypeDescriptor Typename="System.Data.DataTableCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Tables" IsCollection="true">
                           <TypeDescriptors>
                              <TypeDescriptor Typename="System.Data.DataTable, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Categories">
                                 <TypeDescriptors>
                                       <TypeDescriptor Typename="System.Data.DataRowCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Rows" IsCollection="true">
                                          <TypeDescriptors>
                                             <TypeDescriptor Typename="System.Data.DataRow, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Categories">
<TypeDescriptors>
<TypeDescriptor Typename="System.String" Identifiername="CustomerName" name="CustomerName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">CustomerName</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
<TypeDescriptor Typename="System.String" name="DisplayName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
<MethodInstances>
<MethodInstance Type="Finder" ReturnParametername="GetCustomersResult" 
ReturnTypeDescriptorname="GetCustomersResult" 
ReturnTypeDescriptorLevel="0" name="CustomerFinderInstance" />
<MethodInstance Type="SpecificFinder" 
ReturnParametername="GetCustomersResult" 
ReturnTypeDescriptorname="GetCustomersResult" 
ReturnTypeDescriptorLevel="0" name="CustomerSpecificFinderInstance" />
</MethodInstances>
</Method>
</Methods>
</Entity>