サンプル BDC モデル
最終更新日: 2010年4月15日
適用対象: SharePoint Server 2010
次の BDC モデルの例は、種類が Web サービスの外部システムの Customer 外部コンテンツ タイプを表しています。この例では、SharePoint 2010 SDK に収録されているサンプル AdventureWorks Web サービスを使用して、次の処理を示します。
1 つの Method オブジェクトを持つ簡単な外部コンテンツ タイプ WSCustomer の追加
実行時に Method を実行可能にする MethodInstance オブジェクトの追加
Customer 外部コンテンツ タイプと Order 外部コンテンツ タイプの関連付け
例: 1 つの 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>
例: 実行時に Method オブジェクトを実行可能にする MethodInstance の追加
前の例では、実行時に Method は実行できません。次のコード例では、前の Customer エンティティに 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
Association は MethodInstance の 1 つの種類です。次のコード例では、2 つのエンティティを関連付ける方法を示します。モデルに既に定義されている 'Orders という名前のパラメーターを返すメソッドを持つ Order という名前のエンティティの種類が存在すると想定しています。ここでは、モデルは、Customer と Order の 2 つのエンティティを関連付けます。
<!—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 オブジェクトは外部コンテンツ タイプに対して表示されません。
BDC モデル スキーマの説明については「BDCMetadata スキーマ」を、その他の例については「Business Connectivity Services: サンプル XML とコード例」を参照してください。