protected void InitialDataFieldMapping() { PropertyInfo[] propertys = ObjectType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo pi in propertys) { //字段属性 IDataFieldConfig config = ConfigManager.LoadDataFieldConfig(pi); if (config != null) { Type type = pi.PropertyType; string name = string.IsNullOrEmpty(config.Name) ? pi.Name : config.Name; DataFieldMapping mapping = DataFieldMapping.CreateDataFieldMapping(type, pi, name, pi.Name, config, this, ObjectType); mapping.Handler = new PropertyHandler(pi); _fieldMappingDictionary.Add(mapping.IndexName, mapping); if (mapping.Name != mapping.IndexName) { _fieldMappingAlterNameDictionary.Add(mapping.Name, mapping); } } } if (_fieldMappingDictionary.Count == 0) { throw new LightDataException(RE.DataFieldsIsNotExists); } }
private void ParseSubDataField() { PropertyInfo[] propertys = ObjectType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo pi in propertys) { IDataFieldConfig config = ConfigManager.LoadDataFieldConfig(pi); if (config != null) { Type type = pi.PropertyType; string name = string.IsNullOrEmpty(config.Name) ? pi.Name : config.Name; string filedName = string.Format("{0}_{1}", Name, name); string indexName = string.Format("{0}_{1}", IndexName, pi.Name); DataFieldMapping mapping = DataFieldMapping.CreateDataFieldMapping(type, pi, filedName, indexName, config, EntityMapping, ObjectType); PrimitiveFieldMapping primitiveFieldMapping = mapping as PrimitiveFieldMapping; if (primitiveFieldMapping != null) { primitiveFieldMapping.IsIdentity = false; primitiveFieldMapping.IsPrimaryKey = false; } mapping.Handler = new PropertyHandler(pi); _fieldMappingDictionary.Add(mapping.IndexName, mapping); if (mapping.Name != mapping.IndexName) { _fieldMappingAlterNameDictionary.Add(mapping.Name, mapping); } } } if (_fieldMappingDictionary.Count == 0) { throw new LightDataException(RE.ComplexFieldHaveNotSubFields); } }