2013-01-16 8 views
0

검토 테이블에 사용자 ID가 있습니다.LINQ의 쿼리 별 TSQL 그룹

select u.userid,review,COUNT(review) as coun,u.firstName,u.lastname,u.avatar,u.userid from reviews r 
inner join users u on u.userid=r.userid 
group by u.userid,review,u.firstName,u.lastname,u.avatar,u.userid 
order by coun desc 
이 스크립트는 LINQ로 변환하는 방법을

? 다음 코드는 불완전한 코드입니다. 코드는

var reviews = from r in context.Reviews.Where(r => r.CreateDate > dateFrom && r.CreateDate < dateTo) 
           group r by new { r.Review1, r.UserID } into g 
           join u in context.Users on g.Key.UserID equals u.UserID 
           select new UserMan 
           { 
            ID = u.UserID, 
            Avatar = u.Avatar, 
            LastName = u.LastName, 
            FirstName = u.FirstName, 
            Review = g.Key.Review1, 
            Reviews = g.Count() 
           }; 
       return reviews.ToList(); 
+1

select 문에는 r.review와 count (r.review)가 모두있는 것 같습니다. 너는 무엇을 얻으려고 하는가? – istepaniuk

+0

나는 사용자가 쓴 리뷰를 얻으려고 노력한다. 일부 사용자는 모든 페이지에서 "좋은 편", "좋은 편", "좋은 편"과 같은 모든 리뷰를 작성합니다. – levi

+1

질문을 편집하셨습니다. 따라서 동일한 리뷰가 몇 번 반복되었는지 알고 싶습니까? 내 대답을 편집했습니다. – istepaniuk

답변

2

그냥 그 가입을 제거.

var reviews = from r in context.Reviews.Where(r => r.CreateDate > dateFrom && r.CreateDate < dateTo) 
    group r by new { r.Review1, r.User } into g 
    select new UserMan 
     { 
      ID = g.Key.User.UserID, 
      Avatar = g.Key.User.Avatar, 
      LastName = g.Key.User.LastName, 
      FirstName = g.Key.User.FirstName, 
      Review = g.Key.Review1, 
      Reviews = g.Count() 
     }; 

return reviews.ToList();