mvc4实体查询如何改进这一点,使性能更好

时间:2014-11-15 21:09:10

标签: entity-framework asp.net-mvc-4

我将展示的以下代码正常工作,但我想知道是否有更有效的方法来完成此任务可以提高性能。开玩笑的是我有2个表格和关注者。此代码应修改配置文件表中的2条记录,并在关注者表中添加记录。

  [HttpPost]
    public void AddFollower(int id,following followers)
    {
        // me wants to follows followee
        int me = Convert.ToInt32(User.Identity.Name);
        using (var scope = new TransactionScope())
        {
            followers.me = me;
            followers.ProfileID = id;
// Add new record on followers table
            db.followings.Add(followers);
            db.SaveChanges();
// Add +1 following for this persons profile & save it
            var UserA = (from s in db.profiles where s.ID == me select s).FirstOrDefault();
           UserA.following = UserA.following + 1;
            db.Entry(UserA).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
// Add +1 followers for this persons profile & save it
            var UserB = (from s in db.profiles where s.ID == id select s).FirstOrDefault();
            UserB.followers = profiles.followers + 1;
            db.Entry(UserB).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
            scope.Complete();


        }



    }

上面的代码有一个像功能一样的推特,如果用户A决定关注用户B,那么你最多修改他们在数据库中的配置文件。这是通过将用户A跟随计数增加1并将用户B关注者数增加1然后在关注者表中创建该关系来完成的。这段代码完美无缺,但我不知道它是否可以更高效地编写,我基本上担心如果网站上有很多用户,这些代码可能会减慢速度。

1 个答案:

答案 0 :(得分:0)

存储数字真的是多余的。这是一个计算值,可以通过简单的计数轻松计算。