static void AddMapping(LightDBDefinitionSet defs, TableDefinition[] defaultTables, SimpleFlatFieldDefinition fieldDef, Dictionary<string, List<SimpleDataColumn>> mappedFields, IFlatDataFieldAccessor accessor, MemberInfo member) { var column = fieldDef.Column; var tables = defs.EnsureTables(fieldDef.Table, defaultTables); object defaultValue; if (!String.IsNullOrEmpty(fieldDef.DefaultStringValue)) { defaultValue = Utility.Parse(fieldDef.DefaultStringValue, member.GetVariableType()); } else { if (String.IsNullOrEmpty(column)) { return; } defaultValue = null; } if (accessor.DataHolderDefinition.Type.Name.EndsWith("TrainerEntry")) { defs.ToString(); } foreach (var table in tables) { var dataHolders = defs.m_tableDataHolderMap.GetOrCreate(table); if (!dataHolders.Contains(accessor.DataHolderDefinition)) { dataHolders.Add(accessor.DataHolderDefinition); } var mappedFieldMap = mappedFields.GetOrCreate(table.Name); SimpleDataColumn dataColumn; if (String.IsNullOrEmpty(column)) { // use default value mappedFieldMap.Add(dataColumn = new SimpleDataColumn(fieldDef.Name, defaultValue)); } else { dataColumn = mappedFieldMap.Find((cmpField) => cmpField.ColumnName == column); if (dataColumn == null) { mappedFieldMap.Add(dataColumn = new SimpleDataColumn(column, Converters.GetReader(member.GetActualType()))); } } dataColumn.FieldList.Add(accessor); } }