In SharePoint 2010, I have user profile data synchronized from active directory. Additionally, I've created a BdcModelProject in Visual Studio 2010 and done the necessary work to add some additional properties that I'm incorporating into the SP2010 User Profile. This is working fine for properties that are of type string (Single Value), but so far I've been unable to get it working for a property that can have multiple values (in my case, I want to have a property called "Languages" that is a list of languages that each person speaks).
1) Having a field of type IEnumerable in my external content type. This causes an error during synchronization that reads something like
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type System.Collections.Generic.List`1[[System.String, mscorlib, Version=18.104.22.168, Culture=neutral, PublicKeyToken=b77a5c561934e089]] may not be used in this context.
2) Creating a second entity in my BDC model and creating an association from my (working) entity to the second entity, called "Language". I've successfully deployed this, but when I go to create the custom user profile property, there doesn't seem to be a way to map it to this attribute. When I choose my BDC data connection, the only attributes given as options to map to are the single-valued fields that are part of the external data type.
Am I not doing something correctly in option 2, or do I need to do a 1:many synchronization?