예제 #1
0
        //---------------------------------------------------------------------
        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;
            }
        }
예제 #2
0
파일: EbData.cs 프로젝트: yinlei/Fishing
 //---------------------------------------------------------------------
 internal void _addTable(EbTable table)
 {
     mMapTable[table.Name] = table;
 }
예제 #3
0
        //---------------------------------------------------------------------
        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);
        }
예제 #4
0
 //---------------------------------------------------------------------
 internal void _addTable(EbTable table)
 {
     mMapTable[table.Name] = table;
 }