Business Data Connectivity (BDC) Service によってサポートされないデータ型

最終更新日: 2010年9月27日

適用対象: SharePoint Server 2010

この記事の内容
データベース コネクタを使用する場合
.NET Assembly Connector を使用する場合
Web サービス コネクタを使用する場合
Business Data Connectivity (BDC) Service の一般的な制限事項

ここでは、Business Data Connectivity (BDC) service でサポートされていないデータ型について説明します。

データベース コネクタを使用する場合

  1. Microsoft SQL Server 2008 の HIERARCHYID と空間データ型はサポートされていません。

  2. SQL Server 2008 のデータ型 DATE と DATETIME2 は, .NET DateTime にマッピングされます。

    1. .NET DateTime に指定できる範囲は、1/1/0001 (MinValue の値) ~ 23:59 12/31/9999 (MaxValue の値) です。

    2. 外部リストは、DateTime2 データ型が 1/1/0001 ~ 12/31/9999 の範囲の値を受け入れる場合でも、1/1/1900 ~ 12/31/8900 の範囲でのみユーザーが datetime を入力できるようにします。ただし、特定の範囲は BDC オブジェクト モデルを経由して機能するので、カスタム Web パーツを使用してこれを回避できます。

  3. SQL Server 2008 のデータ型 TIME は, .NET Timespan にマッピングされます。

    BDC では、複数の結果セットはサポートされていません。

.NET Assembly Connector を使用する場合

BDC では, .NET Assembly Connector を使用する場合はすべての .NET のデータ型をサポートします。BDC メタデータ モデルでカスタム型を使用する場合は、型はプライマリ アセンブリで完全に定義する必要があります。

次の例では、XClass は、依存アセンブリで定義されている型に依存するので、機能しません。ただし、YClass は機能します。

[Dependent Assembly]
Public MyClass 
{
}
[Primary Assembly]
Public XClass : MyClass
{
}
Public YClass
{
}

Web サービス コネクタを使用する場合

Web サービスでは次の使用を避けてください。

  • DataSet

  • DataTable

ただし、これらを使用する必要がある場合は、正しく機能するように次のプロパティを LobSystem 要素に必ず追加してください。

<Property Name="ReferenceKnownTypes" Type="System.Boolean">true</Property>

次の項目は Web サービスで機能しません。

  • ネストされた struct

  • ネストされた enum

  • ネストされたクラス

  • パラメーターなしのパブリック コンストラクターがない型

Business Data Connectivity (BDC) Service の一般的な制限事項

  1. BDC では、単純型でない structs をサポートしていません。プリミティブ型でない structs を使用すると、データの損失と不整合が発生します。プリミティブ型でない structs は使用しないでください。

  2. BDC では、ネストされたコレクション (たとえば、配列の配列やコレクションの配列。この場合、配列またはコレクションの要素もコレクション) をサポートしていません。これらの型は使用できますが、これらの型をコレクションとしてモデリングできません。1 つのレベルは、IsCollection="false" 回避策を指定した構造体としてモデリングする必要があります。

  3. BDC では、多次元配列をサポートしていません。

  4. BDC では, .NET Framework 4 に導入されている動的プログラミングをサポートしていません。BDC は, .NET Framework 3.5 でのみ動作します。ただし、DynamicType クラスを使用できます。このクラスは、同じように機能します。

  5. BDC では、データ構造でコレクションを表す ICollection と IEnumerable インターフェイス、汎用の ICollection<T>、IEnumerable<T>、および IList<T> インターフェイスをサポートしていません。すべてのコレクションは、IList を実装する必要があります。これは、入力パラメーターと入出力パラメーターのデータ構造、外部アイテムのフィールドにも当てはまります。複数のアイテムを返す Finder など、メソッド インスタンスの戻り値の型については、戻り値は IEnumerable または IEnumerator (データベースを除く。データベースの場合、IDataReader だけをサポート) を実装する必要があります。BDC では、この IEnumerable<T> と IEnumerator<T> の汎用バージョンをサポートしていません。このため、たとえば、Web サービスまたは .NET アセンブリの場合、Finder メソッドは顧客オブジェクトを含んだ列挙子を返すことはできますが、顧客オブジェクトには、住所リストを表す住所の列挙可能を入れることができません。この段落の制限事項で使用している "BDC では~をサポートしていません" という言葉は、サポートされていないインターフェイスだけを実装した場合は機能せず、サポートされていないインターフェイスと BDC に必要なインターフェイスを実装した場合は機能することを意味します。