Business Data Connectivity (BDC) Service でのドット記法の使用

最終更新日: 2010年4月19日

適用対象: SharePoint Server 2010

この記事の内容
例 1: 複合型のフィールドを参照する
例 2: コレクションにアクセスする
例 3: 特殊文字を含むフィールドを参照する

外部システムから返されるデータ構造には、複数レベルのデータ要素を持つ複雑な構造を含めることができます。Business Data Connectivity (BDC) service では、ドット表記を使用してデータ要素の各レベルにアクセスできます。ドット表記は、C# 内のデータ要素へのアクセスに似たデータ要素の表現です。各データ要素にアクセスするには、含めるデータ要素が構造の場合はその親データ要素と、データ要素名を指定し、含める要素がコレクションの場合はデータ要素のインデックスを指定します。ドット表記の使用方法を示すいくつかの例を次に示します。

例 1: 複合型のフィールドを参照する

以下のフィールドを含む外部アイテムである Customer 構造を考えます。

  • CustomerID

  • Name

  • PhoneNumber

  • Address

    • Street

    • City

    • State

    • Zip

Address フィールドは複合型です。Customer 外部アイテムから以下のフィールドを表示すると仮定します。

  • Name

  • PhoneNumber

  • City

  • State

この場合、以下のコードのように、IEntityInstance インターフェイス内でインデクサーを使用して、以上のフィールドを取得できます。

IEntityInstance customerItem = customerEntity.FindSpecific (...);

customerItem["Name"]
customerItem["PhoneNumber"]
customerItem["Address.City"]
customerItem["Address.State"]

例 2: コレクションにアクセスする

BDC を使用して、コレクション内のメンバーを参照することもできます。以下のフィールドを含む Customer 構造を考えます。

  • CustomerID

  • Name

  • PhoneNumber

  • Addresses (これは Address 要素のコレクション)

    • Address

      • Street

      • City

      • State

      • Zip

この例の顧客構造には Address コレクションが含まれます。コレクション内の 1 番目の住所を主住所と仮定し、また、Customer 外部アイテムから以下のフィールドを表示すると仮定します。

  • CustomerID

  • Name

  • PhoneNumber

  • PrimaryAddressCity

  • PrimaryAddressState

この場合、SpecificFinder メソッド インスタンスの戻り値パラメーターで、以下のコードのように、Customer 構造の City および State サブフィールドを参照できます。

Customer.Addresses[0].City
Customer.Addresses[0].State

例 3: 特殊文字を含むフィールドを参照する

名前に、特殊文字であるバックスラッシュ ("\")、ピリオド (".")、または角かっこ ("[") のいずれかが含まれる場合、その特殊文字を "\" でエスケープする必要があります。

以下のフィールドを含む Customer 構造を考えます。

  • CustomerID

  • Name

  • PhoneNumber

  • Address

    • Street

    • House\PropertyNo

    • City

    • State

    • Zip

フィールド "House\PropertyNo" には、特殊文字 "\" が含まれます。Customer 外部アイテムから以下のフィールドを表示すると仮定します。

  • CustomerID

  • Name

  • PhoneNumber

  • House\PropertyNo

  • City

  • State

この場合、SpecificFinder メソッド インスタンスの戻り値パラメーターで、以下のコードのように、Customer 構造の House\PropertyNo サブフィールドを参照できます。

Customer.Address.House\\PropertyNo