public static async ETTask SaveLog(this DBProxyComponent self, long uid, DBLog.LogType logType, ComponentWithId record)
        {
            Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(self.dbAddress);
            DBLog   dBLog   = ComponentFactory.CreateWithId <DBLog>(IdGenerater.GenerateId());

            dBLog.uid     = uid;
            dBLog.logType = (int)logType;
            BsonDocument doc = null;

            BsonDocument.TryParse(record.ToJson(), out doc);
            dBLog.document = doc;
            dBLog.createAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            await self.SaveLog(dBLog);
        }
        public static async ETTask SaveLogBatch(this DBProxyComponent self, long uid, DBLog.LogType logType, List <ComponentWithId> components)
        {
            Session session             = Game.Scene.GetComponent <NetInnerComponent>().Get(self.dbAddress);
            List <ComponentWithId> list = new List <ComponentWithId>();

            for (int i = 0; i < components.Count; i++)
            {
                ComponentWithId record = null;
                DBLog           dBLog  = ComponentFactory.CreateWithId <DBLog>(IdGenerater.GenerateId());
                dBLog.uid     = uid;
                dBLog.logType = (int)logType;
                BsonDocument doc = null;
                BsonDocument.TryParse(record.ToJson(), out doc);
                dBLog.document = doc;
                dBLog.createAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                list.Add(dBLog);
            }

            await self.SaveBatch(list);
        }