[英]LINQ to SQL, get most recent records for given ID
詮釋
LINQ的新手。
我有一個評分表。
用戶為一個實體添加一組等級。每個用戶可以為一個實體設置多個等級。
例如,假設實體是一輛汽車。 該汽車在外觀和性能上得到了評價。 用戶可以多次評估給定汽車的外觀和性能。 所以我的表看起來像這樣(Rating字段不是Identity列;它是1到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
現在,我有一個輔助方法,其中提供了UserID和EntityID,並且我想返回最新的Ratings集(到包含Ratinging Category的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;
}
我需要添加哪種“位置”或“分組依據”或“排序依據”,以便僅獲取給定UserID和EntityID的最新等級集?
謝謝!
考慮在方法返回時按DateSubmitted
排序,然后獲取所需的條目數。
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
orderby rating.DateSubmitted descending
select new RatingViewModel
{
Rater = rating.User,
RaterRating = rating,
RatingCategory = ratingCat
}
.Take(10);
.OrderByDescending(a => a.DateSubmitted).FirstOrDefault()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.