//--------------------------------------------------------------------- public void loadData <T>(string table_name) where T : EbData, new() { string key = typeof(T).Name; Dictionary <int, EbData> map_data = new Dictionary <int, EbData>(); mMapData[key] = map_data; EbTable table = getTable(table_name); Dictionary <int, EbPropSet> map_propset = table.getAllPropSet(); foreach (var i in map_propset) { T data = new T(); data.Id = i.Value.Id; data.load(i.Value); map_data[data.Id] = data; } }
//--------------------------------------------------------------------- internal void _addTable(EbTable table) { mMapTable[table.Name] = table; }
//--------------------------------------------------------------------- void _loadTable(string table_name) { string str_query_select = string.Format("SELECT * FROM {0};", table_name); Dictionary <int, List <DataInfo> > map_data = mSqlite.getTableData(str_query_select); if (map_data.Count <= 0) { return; } EbTable table = new EbTable(); table.Name = table_name; foreach (var i in map_data) { EbPropSet prop_set = new EbPropSet(); int data_id = i.Key; List <DataInfo> list_data_info = i.Value; foreach (var data_info in list_data_info) { object data_value = data_info.data_value; string data_name = data_info.data_name; switch (data_info.data_type) { case 1: { PropDef prop_def = table.getPropDef(data_name); if (prop_def == null) { PropDef d = new PropDef(data_name, typeof(int), false); table._addPropDef(d); } Prop <int> prop = new Prop <int>(null, prop_def, 0); prop.set((int)data_value); prop_set._addProp(data_name, prop); } break; case 2: { PropDef prop_def = table.getPropDef(data_name); if (prop_def == null) { PropDef d = new PropDef(data_name, typeof(float), false); table._addPropDef(d); } Prop <float> prop = new Prop <float>(null, prop_def, 0f); prop.set(((float)(double)data_value)); prop_set._addProp(data_name, prop); } break; case 3: { PropDef prop_def = table.getPropDef(data_name); if (prop_def == null) { PropDef d = new PropDef(data_name, typeof(string), false); table._addPropDef(d); } Prop <string> prop = new Prop <string>(null, prop_def, ""); prop.set((string)data_value); prop_set._addProp(data_name, prop); } break; } } IProp prop_id = prop_set.getProp("Id"); if (prop_id == null) { EbLog.Error("EbDataMgr._loadTable() Error! Key=Id not exist, TableName=" + table_name); continue; } Prop <int> p = (Prop <int>)prop_id; prop_set.Id = data_id; table._addPropSet(prop_set); } mDb._addTable(table); }