使用MVC 4更新控制器中的数据库

本文关键字:数据库 控制器 更新 MVC 使用 | 更新日期: 2023-09-27 17:50:30

在表单上,我通过Ajax接收信息到其补充控制器中的post actionresult,并将此信息实现到表中。这工作得很好,但我有这个数据,我想更新我的其他表与一些这些数据。

我在我的ArticleScore表中有ArticleID, TimesRated和Rating的值。在我的Article表中,我需要将这个ArticleScore表中的计算数据扔到我的Article表中的特定字段中,但是其中ArticleID = Article表的ID。

我已经搜索了几个小时,但找不到任何关于如何做到这一点的资源。如果你能帮助一个急需帮助的人,那就太好了。

欢呼。

这是我的控制器:

    [HttpPost]
    public ActionResult ViewArticle(int articleID, int rate, int userID)
    {
        Article article = db.Articles
            .Include(i => i.AgeGroupToArticles.Select(a => a.AgeGroup))
            .Include(i => i.DisabilitiesToArticles.Select(a => a.Disabilities))
            .Include(i => i.StrategyTypeToArticles.Select(a => a.StrategyType))
            .Where(i => i.ID == articleID)
            .Single();

        try
        {
            db.ArticleScores.Add(new ArticleScore
            {
                ArticleID = articleID,
                UserID = userID,
                Voted = 1,
                ScoreValue = rate,
                ScoreCreated = DateTime.Now
            });
            db.SaveChanges();
            //Trying to hardcode this into Articles
            var allScores = db.Articles.Select(a => a.ArticleScores.Sum(b => b.ScoreValue)).First();
            var allVotes = db.Articles.Select(a => a.ArticleScores.Sum(b => b.Voted)).First();

            /*
            db.Articles.Add(new Article
            {
                ID = articleID,
                Score =  allScores / allVotes 
            });
            db.SaveChanges();*/
        } 

使用MVC 4更新控制器中的数据库

您的注释出的代码是试图添加一个新的文章,但似乎你想做的是更新现有的文章(你已经从数据库检索早些时候)。

article = allScores / allVotes;
db.SaveChanges();

如果这是不正确的,请张贴你所看到的确切的行为(包括任何错误信息)