C# LINQ到SQL,获取给定ID的最新记录

C# LINQ到SQL,获取给定ID的最新记录,c#,linq-to-sql,C#,Linq To Sql,因蒂 林克是个新手 我有一张评分表。 用户为实体添加一组评级 每个用户一个实体可以有多个评级集 例如,假设实体是一辆汽车。这辆车是按外观和性能评定的。用户可以对给定汽车的外观和性能进行多次评分。所以我的表看起来像这样(评级字段不是一个标识列;它是一个1-10分制的整数): 现在,我有了一个helper方法,在这里我提供了UserID和EntityID,我想返回最近的一组评级(到包含评级类别的ViewModel中) public静态IQueryable GetRatingViewModel(int

因蒂

林克是个新手

我有一张评分表。
用户为实体添加一组评级 每个用户一个实体可以有多个评级集

例如,假设实体是一辆汽车。这辆车是按外观和性能评定的。用户可以对给定汽车的外观和性能进行多次评分。所以我的表看起来像这样(评级字段不是一个标识列;它是一个1-10分制的整数):

现在,我有了一个helper方法,在这里我提供了UserID和EntityID,我想返回最近的一组评级(到包含评级类别的ViewModel中)

public静态IQueryable GetRatingViewModel(int-EntityID,int-UserID)
{
DB_DB=新的DB();
变量a=
从额定值(单位:db)到额定值
将ratingCat加入_db.RatingCategories
关于rating.RatingCategoryID等于ratingCat.RatingCategoryID
其中rating.UserID==UserID
&&rating.EntityID==EntityID
选择new RatingViewModel
{
Rater=rating.User,
额定值=额定值,
评级类别=评级类别
};
返回a;
}
我需要添加哪种类型的“where”或“groupby”或“orderby”,以便只获取给定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);

这样行得通,索塔。如果我像你写的那样添加.Take(10),我会得到一个错误,说我的视图模型不包含“Take”的定义。但是,我可以去掉“.Take(10)”,然后只写var b=a.Take(10);它完成了任务。
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;
    }
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()