private void InsertPropertyField(ApplicationObject metaObject, SqlFieldInfo fieldInfo) { IApplicationObjectFactory factory = MetadataManager.GetFactory(metaObject.GetType()); if (factory == null) { return; } string propertyName = factory.PropertyFactory.GetPropertyName(fieldInfo); if (string.IsNullOrEmpty(propertyName)) { propertyName = fieldInfo.COLUMN_NAME; } // Проверка нужна для свойств, имеющих составной тип данных MetadataProperty property = metaObject.Properties.Where(p => p.Name == propertyName).FirstOrDefault(); if (property == null) { property = factory.PropertyFactory.CreateProperty(metaObject, propertyName, fieldInfo); metaObject.Properties.Add(property); } else if (property.Fields.Where(f => f.Name == fieldInfo.COLUMN_NAME).FirstOrDefault() != null) { return; // поле добавлять не надо } property.Fields.Add(factory.PropertyFactory.CreateField(fieldInfo)); }