示例 BDC 模型
上次修改时间: 2010年4月15日
适用范围: SharePoint Server 2010
下面的示例 BDC 模型表示 Web 服务类型的外部系统的"客户"外部内容类型。使用 SharePoint 2010 SDK 附带的示例 AdventureWorks Web 服务的示例显示:
使用一个 Method 对象添加简单外部内容类型 WSCustomer
添加 MethodInstance 对象以使 Method 可在运行时执行
将两个外部内容类型"客户"和"订单"相关联
示例:使用一个 Method 对象添加简单实体
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog BDCMetadata.xsd" Name="AdventureWorksWSModel" IsCached="false" xmlns="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
<LobSystems>
<LobSystem Type="Wcf" Name="AdventureWorksWS">
<Properties>
<Property Name="WsdlFetchAuthenticationMode" Type="System.String">PassThrough</Property>
<Property Name="WcfMexDiscoMode" Type="System.String">Disco</Property>
<Property Name="WcfMexDocumentUrl" Type="System.String">http://webserver:90/webservice.asmx?wsdl</Property>
<Property Name="WcfProxyNamespace" Type="System.String">BCSServiceProxy</Property>
<Property Name="WildcardCharacter" Type="System.String">*</Property>
</Properties>
<LobSystemInstances>
<LobSystemInstance Name="AdventureWorksWS">
<Properties>
<Property Name="WcfAuthenticationMode" Type="System.String">PassThrough</Property>
<Property Name="WcfEndpointAddress" Type="System.String">http://webserver:90/webservice.asmx</Property>
<Property Name="ShowInSearchUI" Type="System.String"></Property>
</Properties>
</LobSystemInstance>
</LobSystemInstances>
<Entities>
<Entity Namespace="AdventureWorks" Version="1.0.0.0" EstimatedInstanceCount="10000" Name="WSCustomer" DefaultDisplayName="WSCustomer">
<Properties>
<Property Name="OutlookItemType" Type="System.String">Contact</Property>
</Properties>
<Identifiers>
<Identifier TypeName="System.Int32" Name="CustomerId" />
</Identifiers>
<Methods>
<Method IsStatic="false" Name="GetCustomerById">
<Parameters>
<Parameter Direction="In" Name="customerId">
<TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerId" Name="customerId" />
</Parameter>
<Parameter Direction="Return" Name="GetCustomerById">
<TypeDescriptor TypeName="BCSServiceProxy.SalesCustomer, AdventureWorksWS" Name="GetCustomerById">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Int32" ReadOnly="true" IdentifierName="CustomerId" Name="CustomerId" />
<TypeDescriptor TypeName="System.String" Name="Title" />
<TypeDescriptor TypeName="System.String" Name="FirstName">
<Properties>
<Property Name="OfficeProperty" Type="System.String">FirstName</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="MiddleName" />
<TypeDescriptor TypeName="System.String" Name="LastName">
<Properties>
<Property Name="OfficeProperty" Type="System.String">LastName</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="EmailAddress" />
<TypeDescriptor TypeName="System.String" Name="Phone" />
<TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate" />
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
<MethodInstances>
<!- See below>
</MethodInstances>
</Method>
</Methods>
</Entity>
</Entities>
</LobSystem>
</LobSystems>
</Model>
示例:添加 MethodInstance 以使 Method 对象可在运行时执行
在前面的示例中,Method 无法在运行时执行。下面的代码示例演示您可以如何将 MethodInstance 添加到之前的"客户"实体以便使 Method 可执行。
<MethodInstances>
<MethodInstance Type="SpecificFinder" ReturnParameterName="GetCustomerById" Default="true" Name="GetCustomerById" DefaultDisplayName="Read Item WSCustomer">
<Properties>
<Property Name="LastDesignedOfficeItemType" Type="System.String">Contact</Property>
</Properties>
</MethodInstance>
</MethodInstances>
Associating Two entities, Customer and Order
关联的类型为 MethodInstance。下面的代码示例演示如何将两个实体相关联。该示例假定另外存在一个名为"订单"的实体类型,它具有一个返回已在模型中定义的名为 'Orders 的参数。此处,该模型将"客户"和"订单"两个实体相关联。
<!—BDC has three types of association operations - AssociationNavigator, Associate and DisAssociate -->
<MethodInstances>
<Association Name="GetOrdersByCustomer" Type="AssociationNavigator" ReturnParameterName="Orders">
<!—Name of the Source entity in the association -->
<Source Name="Customer" Namespace="AdventureWorks">
<!—Name of the destination entity in the association -->
<Destination Name="Order" Namespace=" AdventureWorks">
</Association>
</MethodInstances>
备注
为了简便和完成此示例起见,没有为外部内容类型显示 LobSystem 和 LobSystemInstance 对象。
请参阅 BDCMetadata 架构查看 BDC 模型架构文档,并参阅 Business Connectivity Services:示例 XML 和代码示例了解更多示例。