更新数据库中网页的视图计数

时间:2008-12-18 00:04:25

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

我有一个名为“帖子”的数据库表,它存储有关网站上文章提交的所有信息。有一个名为“Views”的列,这是一个每次查看特定帖子时都会增加的值。

过程是这样的:

  1. 从数据库中获取记录
  2. 将电流增加一个
  3. 将更改保存到数据库。
  4. 非常简单。我担心的是,如果多人同时点击该链接,则更新将不准确。我该怎么做呢?这应该只在存储过程中完成吗?

        /// <summary>
        /// Updates the view count of a post.
        /// </summary>
        /// <param name="postId">The Id of the post to update</param>
        public bool UpdateViewCount(int postId)
        {
            Repository repository = new Repository();
            Post p = repository.Posts.Where(p => p.Id == postId).SingleOrDefault();
            if (p != null)
            {
                p.Views++;
            }
            repository.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
        }
    

2 个答案:

答案 0 :(得分:6)

一气呵成:

UPDATE table SET views=views+1 WHERE myId=12;

答案 1 :(得分:4)

如果你的db上下文被称为_db,你可以使用它。

_db.ExecuteCommand("UPDATE posts SET views=views+1 WHERE id={0}", postId);

进一步阅读在这里查看顾的帖子。

http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx