intHi,LINQ to SQL, 주어진 ID에 대한 가장 최근 레코드 얻기
LINQ에 새로운 기능이 있습니다.
등급 테이블이 있습니다.
사용자가 엔터티에 대한 등급 집합을 추가합니다. 사용자 당 엔터티에 대해 둘 이상의 평가 집합이있을 수 있습니다.
예를 들어, 엔티티가 자동차라고 가정 해 보겠습니다. 자동차는 외모와 성능에 따라 등급이 매겨집니다. 그리고 사용자는 주어진 자동차의 외관과 성능을 두 번 이상 평가할 수 있습니다. 그래서 내 표는 다음과 같은 형태합니다 (등급 필드가 ID 열가 아니라 하나의 규모에 int이며 - 10) : 이제
ReviewID UserID EntityID CatID Rating Body DateSubmitted
1 3 6 1 7 "drives great" 8/01/2010 02:36:28 PM
2 3 6 2 8 "looks great" 8/01/2010 02:36:28 PM
3 3 6 1 2 "broke down" 8/18/2010 11:39:58 PM
4 3 6 2 1 "paint flaked off" 8/18/2010 11:39:58 PM
, 나는이 사용자 ID를 제공하는 도우미 방법이 있고 EntityID와 나는 가장 최근의 등급 (등급 카테고리를 포함하는 ViewModel)을 반환하려고합니다.
public static IQueryable<RatingViewModel> GetRatingViewModel(int EntityID, int UserID)
{
DB _db = new DB();
var a =
from rating in _db.Ratings
join ratingCat in _db.RatingCategories
on rating.RatingCategoryID equals ratingCat.RatingCategoryID
where rating.UserID == UserID
&& rating.EntityID == EntityID
select new RatingViewModel
{
Rater = rating.User,
RaterRating = rating,
RatingCategory = ratingCat
};
return a;
}
"여기서"나 "로 그룹"또는 "에 의해 순서"어떤 종류 만 주어진 사용자 ID 및에는 EntityID에 대한 평가의 가장 최근의 세트를 잡아 내가 추가해야합니까?
감사합니다.
이 그렇다고, 작동합니다. 작성한대로 .Take (10)을 추가하면 내보기 모델에 'Take'에 대한 정의가 없다는 오류가 발생합니다. 그러나 나는 '.Take (10)'을 뺀 다음 var b = a.Take (10);를 쓸 수 있습니다. 그리고 그것은 일을 끝내게됩니다. – johnnycakes