예제 #1
0
        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);
            }
        }
예제 #2
0
 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);
     }
 }