override public IDBObject getDataObject(string id) { AEDBPersistObject obj = null; dynamic objdatas = _memDB.getHashs(id, this.desc); if (objdatas != null && AEHelper.HasProperty(objdatas, _desc.keyName)) { // get from cache // create AEDBPersistObject obj = new AEDBPersistObject(_mysqlDB, this, _memDB, objdatas[_desc.keyName], objdatas, true); return(obj); } uint dbindex = _getDBIndexByKey(id); objdatas = _mysqlDB[dbindex].getByKey(id, _desc); if (!AEHelper.HasProperty(objdatas, _desc.keyName)) { Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] getDataObject id[" + id + "] keyName[" + _desc.keyName + "] not exist!"); return(null); } // cache data object List <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >(); for (int i = 0; i < _desc.columCount; ++i) { string keyName = _desc.getName(i); if (!AEHelper.HasProperty(objdatas, keyName)) { Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] update cache data keyName[" + keyName + "] not exist!"); continue; } pars.Add(new KeyValuePair <string, object>(keyName, objdatas[keyName])); } if (!_memDB.setHashs(objdatas[_desc.keyName].ToString(), pars, _desc)) { // cache failed! Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] update cache data keyName[" + _desc.keyName + "] keyVal[" + objdatas[_desc.keyName] + "] sethashs failed!"); } obj = new AEDBPersistObject(_mysqlDB, this, _memDB, objdatas[_desc.keyName], objdatas, true); return(obj); }
override protected IDBObject _onInsertData(List <KeyValuePair <string, object> > pars, object key, object Data) { if (!_memDB.setHashs(key.ToString(), pars, _desc)) { Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] insert data keyName[" + _desc.keyName + "] keyVal[" + key + "] sethashs failed!"); return(null); } uint dbindex = _getDBIndexByKey(key); if (!_mysqlDB[dbindex].insert(_desc.name, pars, _desc)) { Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] insert data keyName[" + _desc.keyName + "] keyVal[" + key + "] to mysql failed!"); return(null); } // create AEDBPersistObject AEDBPersistObject obj = new AEDBPersistObject(_mysqlDB, this, _memDB, key.ToString(), Data, true); return(obj); }