다음 코드는 올바르게 작동하지만 성능을 향상시킬 수있는보다 효율적인 방법이 있는지 궁금합니다. 이것의 농담은 2 테이블 프로필과 추종자가 있다는 것입니다. 이 코드는 profiles 테이블에서 2 개의 레코드를 수정하고 followers 테이블에 레코드를 추가합니다.mvc4 엔티티 쿼리 성능 향상을 위해 성능을 향상시키는 방법
[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 씩 증가시킨 다음 추종자 테이블에서 관계를 생성하는 오프사이드에 의해 수행됩니다. 이 코드는 완벽하게 작동하지만 더 효율적으로 작성할 수 있는지 여부는 알지 못합니다. 웹 사이트에 많은 사용자가있는 경우이 코드로 인해 작업 속도가 느려질 수도 있습니다.
숫자를 따르는 추종자를 삭제하고 누군가가 카운트 쿼리를 사용하기를 원할 때마다이를 삭제한다는 의미입니까? – user1591668
예. 얼마나 많은 요청을했는지는 모르겠지만 트위터처럼 그렇게 생각하지는 않습니다. 그렇게하면됩니다. –