XML Snippet: Modeling an AssociationNavigator Method
Applies to: SharePoint Server 2010
The following is an example of an AssociationNavigator method in a BDC model.
Example
<Method IsStatic="false" Name="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] = @CustomerID</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="@CustomerID">
<TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerID"
IdentifierEntityName="Customer"
IdentifierEntityNamespace="AdventureWorks"
ForeignIdentifierAssociationName="Customers Sales Orders"
Name="CustomerID" />
</Parameter>
<Parameter Direction="Return" Name="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="AssociationNavigator"
ReturnParameterName="Customers Sales Orders"
Name="Customers Sales Orders"
DefaultDisplayName="Customers Sales Orders">
<SourceEntity Namespace="AdventureWorks" Name="Customer" />
<DestinationEntity Namespace="AdventureWorks" Name="SalesOrder" />
</Association>
</MethodInstances>
</Method>
For a complete BDC model sample that includes an AssociationNavigator, do the following:
Download the Microsoft SharePoint 2010 SDK.
Extract "bcs sample kit.zip" from "%ProgramFiles%\Microsoft SDKs\SharePoint 2010\Samples\Business Connectivity Services" to a local folder.
In the folder where you extracted the files, locate the "BDC Models for XML Snippets" folder. This folder contains BDC model samples.