public bool StoreUserScore(UserScoreParam param, ref UserRankInfo rankInfo) { using (var connection = new SQLiteConnection(ConnectionString))// 「DataSource=:memory:」にするとオンメモリのDBとして動作 { // データベースに接続 connection.Open(); using (var context = new DataContext(connection)) { User user = User.Find(context, param.Sereal); if (user == null) { connection.Close(); return(false); } UserScore score = new UserScore(user); score.Point = param.Point; bool ret = score.Commit(connection); if (rankInfo != null) { rankInfo.UserId = score.UserId; rankInfo.Name = user.Name; rankInfo.Point = score.Point; rankInfo.Rank = score.Rank(context); } connection.Close(); return(ret); } } }
bool CreateDataBase(string dbName) { ConnectionString = $"DataSource={dbName}.sqlite"; using (var connection = new SQLiteConnection(ConnectionString))// 「DataSource=:memory:」にするとオンメモリのDBとして動作 { // データベースに接続 connection.Open(); // ユーザーテーブルの作成 User.CreateTable(connection); // ランキング用テーブルの作成 UserScore.CreateTable(connection); // ダミーデータの作成 int count = 0; using (var context = new DataContext(connection)) { count = User.Count(context); } const int DATA_MIN = 10; Random rand = new Random(); for (int i = count; i < DATA_MIN; i++) { User user = new User(); user.Name = "CPU" + i; user.Commit(connection); UserScore score = new UserScore(user); score.Point = rand.Next(10000); score.Commit(connection); } // 切断 connection.Close(); } return(true); }