Средние значения Linq to Entities в предварительно определенной группе - PullRequest
1 голос
/ 29 июня 2009
I have used linq to entities to basically create an anonymous type with properties

bookId and rating which I have grouped by bookId. all I need to do is take this and 

form an anonymous type which groups by bookId and gives the average rating for this bookid

so anonymous type results currently looklike:


bookid = 1, rating = 2
bookid = 1, rating = 4
bookid = 2, rating = 3
bookid = 3, rating = 5

and the results need to look like

bookid = 1, средний рейтинг = 3 bookid = 2, среднее значение = 4 bookid = 3, среднее значение = 5

усреднение только на основе группировки.

спасибо

1 Ответ

1 голос
/ 02 июля 2009

Учитывая анонимный тип с именем bookRatingList, который содержит список bookRatings (new {bookid = somevalue, rating = somevalue}), вы можете использовать следующий код:

    var bookRatingAverageList = from book in bookRatingList
    orderby book.bookid
    group book by book.bookid
    into groupedList
    select new { BookId = groupedList.Key, 
                 AverageRating = groupedList.Average(b => b.rating)};

Результатом должен быть массив анонимно типизированных объектов со свойствами BookId и AverageRating, упорядоченный по BookId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...