LINQ to SQL, получить самые последние записи для данного идентификатора - PullRequest
0 голосов
/ 19 августа 2010

intHi,

Довольно новый для LINQ.

У меня есть таблица рейтингов.
Пользователь добавляет набор рейтингов для сущности Может быть несколько наборов оценок длясущность на пользователя.

Например, скажем, сущность - это автомобиль.Автомобиль оценивается по внешнему виду и производительности.И пользователь может оценить внешний вид и производительность данного автомобиля более одного раза.Поэтому моя таблица выглядит примерно так (поле «Рейтинг» не является столбцом «Идентичность»; это целое число по шкале от 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, и я хочу вернуть самый последний набор рейтингов (в 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;
    }

Какой тип "где" или "группировать по" или "упорядочить по«Нужно ли добавлять ТОЛЬКО для получения самого последнего набора рейтингов для данного идентификатора пользователя и идентификатора объекта?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 августа 2010
.OrderByDescending(a => a.DateSubmitted).FirstOrDefault()
0 голосов
/ 19 августа 2010

Рассмотрите порядок по 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...