private void CreateStorageEntity(ISchemaEntity entity)
        {
            // Check to see if this has already been processed.
            if (_storageEntitys.Contains(entity.EntityKey()))
            {
                return;
            }

            bool isNewView;

            var entitySet  = CreateStorageEntitySet(entity, out isNewView);
            var entityType = CreateStorageEntityType(entity, entitySet.Name, ref isNewView);

            // Remove the duplicate properties.
            RemoveDuplicateStorageEntityTypeKeysAndProperties(entityType);

            // Remove extra properties values.
            var properties = from property in entityType.Properties
                             where !(from prop in entity.Properties select prop.KeyName).Contains(property.Name)
                             select property;

            // Remove all of the key properties that don't exist in the table entity.
            foreach (var property in properties)
            {
                var propertyName = ResolveConceptualPropertyNameFromStorageColumnName(entityType.Name, property.Name);
                _removedStorageEntityProperties.Add(String.Format(PROPERTY_KEY, entity.EntityKeyName, propertyName).ToLower());
                entityType.Properties.Remove(property);
            }

            CreateStorageEntityTypeKeys(entity, isNewView, entityType);
            CreateStorageEntityTypeProperties(entity, entityType);

            _storageEntitys.Add(entity.EntityKeyName);
        }
        private void CreateStorageEntity(ISchemaEntity entity)
        {
            // Check to see if this has already been processed.
            if (_storageEntitys.Contains(entity.EntityKey()))
                return;

            bool isNewView;

            var entitySet = CreateStorageEntitySet(entity, out isNewView);
            var entityType = CreateStorageEntityType(entity, entitySet.Name, ref isNewView);

            // Remove the duplicate properties.
            RemoveDuplicateStorageEntityTypeKeysAndProperties(entityType);

            // Remove extra properties values.
            var properties = from property in entityType.Properties
                where !(from prop in entity.Properties select prop.KeyName).Contains(property.Name)
                select property;

            // Remove all of the key properties that don't exist in the table entity.
            foreach (var property in properties) {
                var propertyName = ResolveConceptualPropertyNameFromStorageColumnName(entityType.Name, property.Name);
                _removedStorageEntityProperties.Add(String.Format(PROPERTY_KEY, entity.EntityKeyName, propertyName).ToLower());
                entityType.Properties.Remove(property);
            }

            CreateStorageEntityTypeKeys(entity, isNewView, entityType);
            CreateStorageEntityTypeProperties(entity, entityType);

            _storageEntitys.Add(entity.EntityKeyName);
        }