0

我一直在寻找解决这个问题的方法太久了,我真的很想让这个工作。

我正在尝试提交到数据库,但即使整个函数执行,更改也不会发生。

在文件的顶部我有这个:

    DBContextDataContext n_db = new DBContextDataContext();
    UserRepository u_rep = new UserRepository();

这是函数(第 280 行):

    public void FixWinRatio(int gameID)
    {
        //
        IEnumerable<BLGame> games = GetBLGameInfo(gameID);

        foreach (BLGame item in games)
        {
           Stat stats = u_rep.GetUsersStats(item.userID, 2);
            if (item.points >= 6)
            {
                 stats.wins += 1;
            }
            else
            {
                 stats.losses += 1;
            }
            n_db.SubmitChanges();
        }
    }

什么都没有发生,一切都在执行并且值发生变化(stats.wins 获得 +1 或损失取决于点数)

我也试过这个:

            n_db.Stats.Attach(stats, true);
            n_db.SubmitChanges();

没有什么。

感谢您所花的时间!

4

1 回答 1

1

您的 UserRepository 需要使用相同的 DataContext。由于您没有将其传递给 UserRepository ctor,因此我假设它会创建一个不起作用的第二个 DataContext。

于 2013-05-17T01:12:40.763 回答