簡體   English   中英

使用MVC 4在Controller中更新數據庫

[英]Update database in Controller with MVC 4

從表單發布時,我正在通過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();*/
        } 

您注釋掉的代碼正在嘗試添加新文章,但似乎您想要做的就是更新現有文章(您之前已從數據庫中檢索到該文章)。

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

如果這不正確,請張貼您所看到的確切行為(包括任何錯誤消息)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM