public virtual async Task <IActionResult> Query()
        {
            var query    = QueryFilterHeler.Convert <T>(Request.Query);
            var entities = await DbEntityManager.Select <T>(DbType, Db, query);

            return(Ok(entities));
        }
        public async Task <ContentResult> Finish([FromBody] dynamic json)
        {
            Game game = DynamicJson.Parse(json).Deserialize <Game>();

            using (var trans = new TransactionScope())
            {
                var scores = await DbEntityManager.Select <GameScore>("gid", game.Id);

                foreach (var player in game.Players)
                {
                    var score = scores.SingleOrDefault(s => s.pidx == player.Index);
                    if (score != null)
                    {
                        //integral
                        var oid      = score.oid;
                        var integral = await DbEntityManager.SelectOne <UserIntegral>("wx_openid", oid);

                        if (player.State == 1)
                        {
                            score.score              = 1;
                            integral.mc_integral    += 10;
                            integral.total_integral += 10;
                        }
                        else
                        {
                            score.score              = -1;
                            integral.mc_integral    += 1;
                            integral.total_integral += 1;
                        }

                        //update GameScore & integral
                        await DbEntityManager.Update <GameScore>(score);

                        await DbEntityManager.Update <UserIntegral>(integral);
                    }
                }

                trans.Complete();
            }

            return(new ContentResult()
            {
                StatusCode = 200
            });
        }