private void InitialDynamicFieldMapping() { var properties = ObjectTypeInfo.GetProperties(BindingFlags.Public | BindingFlags.Instance); var tempList = new List <DynamicFieldMapping>(); foreach (var pi in properties) { var mapping = DynamicFieldMapping.CreateDynamicFieldMapping(pi, this); tempList.Add(mapping); } if (tempList.Count == 0) { throw new LightDataException(string.Format(SR.NoMappingField, ObjectType.FullName)); } _fieldList = new ReadOnlyCollection <DynamicFieldMapping>(tempList); }
private void InitialDynamicFieldMapping() { PropertyInfo[] propertys = ObjectTypeInfo.GetProperties(BindingFlags.Public | BindingFlags.Instance); List <DynamicFieldMapping> tmepList = new List <DynamicFieldMapping>(); foreach (PropertyInfo pi in propertys) { DynamicFieldMapping mapping = DynamicFieldMapping.CreateDynmaicFieldMapping(pi, this); _fieldMappingDictionary.Add(mapping.IndexName, mapping); tmepList.Add(mapping); } if (tmepList.Count == 0) { throw new LightDataException(string.Format(SR.NoMappingField, ObjectType.FullName)); } _fieldList = new ReadOnlyCollection <DynamicFieldMapping>(tmepList); }
private void InitialRelationField() { var properties = ObjectTypeInfo.GetProperties(BindingFlags.Public | BindingFlags.Instance); var collectionTmpList = new List <CollectionRelationFieldMapping>(); var singleTmpList = new List <SingleRelationFieldMapping>(); foreach (var pi in properties) { var config = MapperConfigManager.LoadRelationDataFieldConfig(ObjectType, pi); if (config != null && config.RelationKeyCount > 0) { var type = pi.PropertyType; var typeInfo = type.GetTypeInfo(); if (typeInfo.IsGenericType) { var frameType = type.GetGenericTypeDefinition(); if (frameType == LCollectionFrameType || frameType.FullName == "System.Collections.Generic.ICollection`1") { var arguments = typeInfo.GetGenericArguments(); type = arguments[0]; var handler = new PropertyHandler(pi); var keyPairs = config.GetRelationKeys(); var mapping = new CollectionRelationFieldMapping(pi.Name, this, type, keyPairs, handler); collectionTmpList.Add(mapping); } } else { var handler = new PropertyHandler(pi); var keyPairs = config.GetRelationKeys(); var mapping = new SingleRelationFieldMapping(pi.Name, this, type, keyPairs, handler); singleTmpList.Add(mapping); } } } _collectionRelationFields = new ReadOnlyCollection <CollectionRelationFieldMapping>(collectionTmpList); _singleRelationFields = new ReadOnlyCollection <SingleRelationFieldMapping>(singleTmpList); }
protected void InitialDataFieldMapping() { var properties = ObjectTypeInfo.GetProperties(BindingFlags.Public | BindingFlags.Instance); var index = 0; var list = new List <FieldInfo>(); foreach (var pi in properties) { var config = MapperConfigManager.LoadDataFieldConfig(ObjectType, pi); if (config != null) { index++; var info = new FieldInfo(pi, config, index); list.Add(info); } } if (list.Count == 0) { throw new LightDataException(string.Format(SR.NoMappingField, ObjectType)); } list.Sort((x, y) => { if (x.DataOrder.HasValue && y.DataOrder.HasValue) { if (x.DataOrder > y.DataOrder) { return(1); } if (x.DataOrder < y.DataOrder) { return(-1); } return(x.FieldOrder > y.FieldOrder ? 1 : -1); } if (x.DataOrder.HasValue && !y.DataOrder.HasValue) { return(-1); } if (!x.DataOrder.HasValue && y.DataOrder.HasValue) { return(1); } return(x.FieldOrder > y.FieldOrder ? 1 : -1); }); var tmpList = new List <DataFieldMapping>(); for (var i = 0; i < list.Count; i++) { var info = list[i]; var mapping = DataFieldMapping.CreateDataFieldMapping(info.Property, info.Config, i + 1, this); _fieldMappingDictionary.Add(mapping.IndexName, mapping); if (mapping.Name != mapping.IndexName) { _fieldMappingDictionary.Add(mapping.Name, mapping); } tmpList.Add(mapping); } _fieldList = new ReadOnlyCollection <DataFieldMapping>(tmpList); }