使用MVC 4更新Controller中的数据库

时间:2014-03-14 19:30:08

标签: c# asp.net-mvc-4 controller

在表单上的帖子中,我通过Ajax接收信息到我的补充控制器中的post actionresult并将此信息实现到表中。这工作正常,但我有这些数据,我想用其中一些数据更新我的另一个表。

我有ArticleID,TimesRated的值和我的ArticleScore表中的评级。在我的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();*/
        } 

1 个答案:

答案 0 :(得分:0)

您注释掉的代码正在尝试添加新文章,但您似乎要做的是更新现有文章(您之前已经从数据库中检索过的文章)。

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

如果不正确,请发布您所看到的确切行为(包括任何错误消息)。