public IRdbmsStoragePropertyDefinition UnifyWithEquivalentProperties(IEnumerable <IRdbmsStoragePropertyDefinition> equivalentProperties)
        {
            ArgumentUtility.CheckNotNull("equivalentProperties", equivalentProperties);
            var checkedProperties = equivalentProperties.Select(property => StoragePropertyDefinitionUnificationUtility.CheckAndConvertEquivalentProperty(
                                                                    this, property, "equivalentProperties")).ToArray();

            var unifiedValueProperty   = _valueProperty.UnifyWithEquivalentProperties(checkedProperties.Select(p => p.ValueProperty));
            var unifiedClassIDProperty = _classIDProperty.UnifyWithEquivalentProperties(checkedProperties.Select(p => p.ClassIDProperty));

            return(new ObjectIDStoragePropertyDefinition(unifiedValueProperty, unifiedClassIDProperty));
        }
        public IRdbmsStoragePropertyDefinition UnifyWithEquivalentProperties(IEnumerable <IRdbmsStoragePropertyDefinition> equivalentProperties)
        {
            ArgumentUtility.CheckNotNull("equivalentProperties", equivalentProperties);
            var checkedProperties = equivalentProperties.Select(property => StoragePropertyDefinitionUnificationUtility.CheckAndConvertEquivalentProperty(
                                                                    this,
                                                                    property,
                                                                    "equivalentProperties",
                                                                    prop => Tuple.Create <string, object> ("property type", prop.PropertyType)
                                                                    )).ToArray();

            var unifiedSerializedIDProperty = _serializedIDProperty.UnifyWithEquivalentProperties(checkedProperties.Select(p => p.SerializedIDProperty));

            return(new SerializedObjectIDStoragePropertyDefinition(unifiedSerializedIDProperty));
        }