Share via


XML Snippet: Modeling a BulkAssociationNavigator Method

Applies to: SharePoint Server 2010

The following is an example of a BulkAssociationNavigator method in a BDC model.

Example

<Method IsStatic="false" Name="Bulk Customers Sales Orders" 
        DefaultDisplayName="Customers Sales Orders">
  <Properties>
    <Property Name="BackEndObject" Type="System.String">SalesOrderHeader
    </Property>
    <Property Name="BackEndObjectType" Type="System.String">SqlServerTable
    </Property>
    <Property Name="RdbCommandText" Type="System.String">
      SELECT [SalesOrderID] , [RevisionNumber] , [OrderDate] , [DueDate] , 
      [ShipDate] , [Status] , [OnlineOrderFlag] , [SalesOrderNumber] , 
      [PurchaseOrderNumber] , [AccountNumber] , [CustomerID] , [ContactID] , 
      [BillToAddressID] , [ShipToAddressID] , [ShipMethodID] , [SubTotal] , 
      [TaxAmt] , [Freight] , [TotalDue] , [Comment] , [rowguid] , 
      [ModifiedDate] , [TerritoryID] FROM [Sales].[SalesOrderHeader]
      WHERE [CustomerID] IN (@CustomerIDs)
    </Property>
    <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, 
              Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      Text</Property>
    <Property Name="Schema" Type="System.String">Sales</Property>
  </Properties>
  <Parameters>
    <Parameter Direction="In" Name="@CustomerIDs">
      <TypeDescriptor Name="CustomerIDs" TypeName="System.Int32[]" 
                      IsCollection="true">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerID" 
                          IdentifierEntityName="Customer" 
                          IdentifierEntityNamespace="AdventureWorks" 
                          ForeignIdentifierAssociationName="Customers Sales Orders" 
                          Name="CustomerID" />
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="Return" Name="Bulk Customers Sales Orders">
      <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, 
                      Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                      IsCollection="true" Name="Read Item">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, 
                          Version=2.0.0.0, Culture=neutral, 
                          PublicKeyToken=b77a5c561934e089" Name="Read ItemElement">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Int32" ReadOnly="true" 
                              IdentifierName="SalesOrderID" Name="SalesOrderID" />
              <TypeDescriptor TypeName="System.Byte" Name="RevisionNumber">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.DateTime" Name="OrderDate">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.DateTime" Name="DueDate">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Nullable`1[[System.DateTime, mscorlib, 
                              Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" 
                              Name="ShipDate">
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Byte" Name="Status">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Boolean" Name="OnlineOrderFlag">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.String" ReadOnly="true" 
                              Name="SalesOrderNumber">
                <Properties>
                  <Property Name="Size" Type="System.Int32">25</Property>
                </Properties>
                <Interpretation>
                  <NormalizeString FromLOB="NormalizeToNull" 
                                   ToLOB="NormalizeToNull" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.String" Name="PurchaseOrderNumber">
                <Properties>
                  <Property Name="Size" Type="System.Int32">25</Property>
                </Properties>
                <Interpretation>
                  <NormalizeString FromLOB="NormalizeToNull" 
                                   ToLOB="NormalizeToNull" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.String" Name="AccountNumber">
                <Properties>
                  <Property Name="Size" Type="System.Int32">15</Property>
                </Properties>
                <Interpretation>
                  <NormalizeString FromLOB="NormalizeToNull" ToLOB="NormalizeToNull" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerID" 
                              IdentifierEntityName="Customer" 
                              IdentifierEntityNamespace="AdventureWorks" 
                              ForeignIdentifierAssociationName="Customers Sales Orders" 
                              Name="CustomerID">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" Name="ContactID">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" Name="BillToAddressID">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" Name="ShipToAddressID">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" Name="ShipMethodID">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Decimal" Name="SubTotal">
                <Properties>
                  <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Decimal" Name="TaxAmt">
                <Properties>
                  <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Decimal" Name="Freight">
                <Properties>
                  <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Nullable`1[[System.Decimal, mscorlib, 
                              Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" 
                              ReadOnly="true" Name="TotalDue">
                <Properties>
                  <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.String" Name="Comment">
                <Properties>
                  <Property Name="Size" Type="System.Int32">128</Property>
                </Properties>
                <Interpretation>
                  <NormalizeString FromLOB="NormalizeToNull" ToLOB="NormalizeToNull" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Guid" Name="rowguid">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate">
                <Properties>
                  <Property Name="RequiredInForms" Type="System.Boolean">true</Property>
                </Properties>
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Nullable`1[[System.Int32, mscorlib, 
                              Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" 
                              Name="TerritoryID" />
            </TypeDescriptors>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
  </Parameters>
  <MethodInstances>
    <Association Type="BulkAssociationNavigator" 
                 ReturnParameterName="Bulk Customers Sales Orders" 
                 Name="Bulk Customers Sales Orders" 
                 DefaultDisplayName="Bulk Customers Sales Orders">
      <SourceEntity Namespace="AdventureWorks" Name="Customer" />
      <DestinationEntity Namespace="AdventureWorks" Name="SalesOrder" />
    </Association>
  </MethodInstances>
</Method>

For a complete BDC model sample that includes a BulkAssociationNavigator, do the following:

  1. Download the Microsoft SharePoint 2010 SDK.

  2. Extract "bcs sample kit.zip" from "%ProgramFiles%\Microsoft SDKs\SharePoint 2010\Samples\Business Connectivity Services" to a local folder.

  3. In the folder where you extracted the files, locate the "BDC Models for XML Snippets" folder. This folder contains BDC model samples.