Freigeben über


Vom Business Data Connectivity-Dienst (BDC) nicht unterstützte Datentypen

Letzte Änderung: Montag, 27. September 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
Bei Verwendung von Database Connector
Bei Verwendung von .NET-Assembly-Connector
Bei Verwendung des Webdienstkonnektors
Allgemeine Einschränkungen des BDC-Dienstes (Business Data Connectivity)

In diesem Thema werden die Datentypen aufgeführt, die nicht vom Business Data Connectivity-Dienst (BDC) unterstützt werden.

Bei Verwendung von Database Connector

  1. Die folgenden Datentypen werden nicht unterstützt: HIERARCHYID und räumliche Datentypen in Microsoft SQL Server 2008.

  2. SQL Server 2008-Datentypen, DATE und DATETIME2 werden .NET DateTime zugeordnet.

    1. .NET DateTime kann folgenden Bereich aufweisen: 1/1/0001 (der Wert von MinValue) bis 23:59 31/12/9999 (der Wert von MaxValue).

    2. Externe Listen ermöglichen es dem Benutzer, datetime nur im Bereich 1/1/1900 - 31/12/8900 einzugeben, obwohl der DateTime2-Datentyp Werte im Bereich 1/1/0001 bis 31/12/9999 akzeptiert. Die vorgegebenen Bereiche sind jedoch über das Objektmodell von BDC verwendbar, somit können Sie die Einschränkung mithilfe benutzerdefinierter Webparts umgehen.

  3. SQL Server 2008-Datentyp TIME wird .NET Timespan zugeordnet.

    In BDC werden mehrere Resultsets nicht unterstützt.

Bei Verwendung von .NET-Assembly-Connector

In BDC werden alle .NET-Datentypen unterstützt, wenn .NET-Assembly-Connector verwendet wird. Bei Verwendung von benutzerdefinierten Typen im BDC-Metadatenmodell müssen die Typen vollständig in der primären Assembly definiert werden.

Im folgenden Beispiel kann XClass nicht ausgeführt werden, da sie von einem Typ abhängt, der in einer abhängigen Assembly definiert wurde; YClass kann jedoch verwendet werden.

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

Bei Verwendung des Webdienstkonnektors

Folgende Datentypen sollten in einem Webdienst vermieden werden:

  • DataSet

  • DataTable

Wenn Sie diese jedoch verwenden müssen, achten Sie darauf, dem LobSystem-Element die folgende Eigenschaft hinzuzufügen, um eine korrekte Ausführung zu erzielen.

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

Folgende Datentypen können in einem Webdienst nicht ausgeführt werden:

  • Schachtelung von struct

  • Schachtelung von enum

  • Geschachtelte Klassen

  • Jeder Typ, der keinen öffentlichen, parameterlosen Konstruktor aufweist

Allgemeine Einschränkungen des BDC-Dienstes (Business Data Connectivity)

  1. In BDC werden structs, bei denen es sich nicht um einfache Typen handelt, nicht unterstützt. Die Verwendung von nicht primitiven structs führt zu Datenverlust und Inkonsistenzen. Verwenden Sie keine nicht primitiven structs.

  2. In BDC werden geschachtelte Sammlungen nicht unterstützt (z. B. ein Array von Arrays oder Sammlungen, bei denen die Elemente ebenfalls Sammlungen sind). Sie können diese Typen verwenden, jedoch nicht als Sammlungen modellieren. Eine der Ebenen muss mithilfe der Problemumgehung IsCollection="false" als eine Struktur modelliert werden.

  3. In BDC werden keine mehrdimensionalen Arrays unterstützt.

  4. In BDC wird die dynamische Programmierung, die in .NET Framework 4 eingeführt wurde, nicht unterstützt. BDC kann nur mit .NET Framework 3.5 ausgeführt werden. Es steht Ihnen jedoch die DynamicType-Klasse zur Verfügung, die vergleichbar ist.

  5. In BDC werden die Schnittstellen ICollection oder IEnumerable zur Darstellung von Sammlungen in Datenstrukturen sowie die allgemeinen Schnittstellen ICollection<T>, IEnumerable<T> und IList<T> nicht unterstützt. Alle Sammlungen müssen IList implementieren. Dies gilt für Datenstrukturen in Eingabeparametern und inout-Parametern sowie für Felder von externen Elementen. Bei Rückgabetypen von Methodeninstanzen wie z. B. Finder, die mehrere Elemente zurückgeben, muss der Rückgabewert entweder IEnumerable oder IEnumerator implementieren (ausgenommen für Datenbanken, für die nur IDataReader unterstützt wird). In BDC werden allgemeine Versionen von IEnumerable<T> und IEnumerator<T> nicht unterstützt. So kann beispielsweise bei einem Webdienst oder einer .NET-Assembly die Finder-Methode einen Enumerator zurückgeben, der customer-Objekte enthält; das customer-Objekt kann keine Aufzählung von Adressen zur Darstellung der Adressliste enthalten. Im Rahmen der in diesem Abschnitt genannten Einschränkungen hat "wird nicht unterstützt in BDC" die folgende Bedeutung: Die Ausführung ist nicht möglich, wenn Sie nur die unterstützten Schnittstellen implementieren; wenn Sie jedoch die nicht unterstützten Schnittstellen und die, die in BDC erforderlich sind, implementieren, ist eine Ausführung möglich.