Data Types Not Supported By the Business Data Connectivity Service

1.   BDC does not support structs that are not simple types. Using non-primitive structs will cause data loss and inconsistencies. Do not use non-primitive structs.
2.   BDC does not support nested collections (for example, array of arrays or collections, where the elements of which are also collections). You can have these types, but you cannot model these types as collections. One of the levels must be modeled as a structure with the IsCollection="false" workaround.
3.   BDC does not support multidimensional arrays.
4.   BDC does not support dynamic programming introduced in .NET Framework 4. BDC works only with .NET Framework 3.5. However, you can use the DynamicType class, which works in a similar way.
5.   BDC does not support the ICollection or IEnumerable interfaces to represent collections in data structures, as well as the generic ICollection<T>, IEnumerable<T>, and IList<T> interfaces. All collections must implement IList. This applies to data structures in input and inout parameters, and fields of external items. For the return types of method instances, such as a Finder returning multiple items, we require the return value to implement either IEnumerable or IEnumerator (except for database, where we support onlyIDataReader). BDC does not support generic versions of these IEnumerable<T> and IEnumerator<T>. So for example, for a Web service or .NET assembly, the Finder method can return an enumerator that contains customer objects; however, the customer object cannot contain an enumerable of addresses to represent the list of addresses. Also for the restrictions mentioned in this paragraph, "BDC does not support" means: It will not work if you implement only the not supported interfaces; however, it will work if you implement these not supported interfaces and the ones that BDC requires.

Popular Posts