Поделиться через


Типы данных, не поддерживаемые службой Business Data Connectivity (BDC)

Дата последнего изменения: 27 сентября 2010 г.

Применимо к: SharePoint Server 2010

В этой статье
При использовании соединителя базы данных
При использовании соединителя сборки .NET
При использовании соединителя веб-службы
Общие ограничения службы подключения к бизнес-данным

В этом разделе перечисляются типы данных, которые не поддерживаются подключения к бизнес-данным (BDC).

При использовании соединителя базы данных

  1. Следующие типы данных не поддерживаются: HIERARCHYID и пространственные типы данных в Microsoft SQL Server 2008.

  2. Типы данных SQL Server 2008, DATE и DATETIME2, будут сопоставлены с типом DateTime платформы .NET.

    1. Тип DateTime платформы .NET может иметь значения в диапазоне от 1/1/0001 (значение MinValue) до 23:59 12/31/9999 (значение MaxValue).

    2. Внешние списки позволяют пользователю вводить datetime только в диапазоне от 1/1/1900 до 12/31/8900 даже несмотря на то, что тип данных DateTime2 принимает значения в диапазоне от 1/1/0001 до 12/31/9999. Однако эти диапазоны доступны в объектной модели BDC, поэтому эту проблему можно устранить с помощью настраиваемых веб-частей.

  3. Тип данных SQL Server 2008 TIME будет сопоставлен с типом Timespan платформы .NET.

    BDC не поддерживает множественные наборы результатов.

При использовании соединителя сборки .NET

BDC поддерживает все типы данных платформы .NET при использовании соединителя сборки .NET. Кроме того, при использовании настраиваемых типов в модели метаданных BDC типы должны быть полностью определены в основной сборке.

В следующем примере класс XClass не будет работать, так как он зависит от типа, заданного в зависимой сборке; однако класс YClass будет работать.

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

При использовании соединителя веб-службы

Следует избегать следующих элементов в веб-службе:

  • DataSet

  • DataTable

Однако, если они необходимы, обязательно включите следующее свойство в элемент LobSystem для их правильной работы.

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

Следующие элементы не будут работать в веб-службе:

  • Вложенная структура struct

  • Вложенная структура enum

  • Вложенные классы

  • Любой тип, в котором нет открытого конструктора без параметров

Общие ограничения службы подключения к бизнес-данным

  1. BDC не поддерживает structs, которые не являются простыми типами. Использование непримитивных типов structs может привести к потере данных и появлению несоответствий. Не используйте типы structs.

  2. BDC не поддерживает вложенные коллекции (например, массив из массивов коллекций, где элементы также являются коллекциями). Можно использовать эти типы, но нельзя моделировать их как коллекции. Один из уровней должен быть смоделирован как структура с использованием выражения 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>. Поэтому, например, для веб-службы или сборки .NET метод Finder может возвращать перечислитель с настраиваемыми объектами. Однако настраиваемый объект не может содержать перечисление адресов для представления списка адресов. Кроме того, для ограничений, указанных в этом параграфе, "BDC не поддерживает" означает, что эта служба не будет работать, если реализовать только не поддерживаемые интерфейсы, но она будет работать, если реализовать эти интерфейсы и интерфейсы, необходимые для BDC.