private void PopulateObjectProperties(IEdmStructuredValue edmValue, object clrObject, Type clrObjectType)
        {
            HashSetInternal <string> strs = new HashSetInternal <string>();

            foreach (IEdmPropertyValue propertyValue in edmValue.PropertyValues)
            {
                PropertyInfo propertyInfo = EdmToClrConverter.FindProperty(clrObjectType, propertyValue.Name);
                if (propertyInfo == null)
                {
                    continue;
                }
                if (!strs.Contains(propertyValue.Name))
                {
                    if (!this.TrySetCollectionProperty(propertyInfo, clrObject, propertyValue))
                    {
                        object obj = this.AsClrValue(propertyValue.Value, propertyInfo.PropertyType);
                        propertyInfo.SetValue(clrObject, obj, null);
                    }
                    strs.Add(propertyValue.Name);
                }
                else
                {
                    throw new InvalidCastException(Strings.EdmToClr_StructuredPropertyDuplicateValue(propertyValue.Name));
                }
            }
        }