Linq to Entities: сложный запрос, получающий «средний» рейтинг ресторана - PullRequest
0 голосов
/ 14 июля 2011

Итак, я создаю сайт Обзора Ресторанов для моего сообщества.Мне нужно извлечь данные из следующих таблиц: RESTAURANT, CUISINE, CITY, PRICE и RATING (рейтинг клиентов).

Запрос должен вернуть все restuarants выбранного CUISINE_ID и вернуть RESTAURANT_NAME, CUSINE_NAME, CUTY_NAME, PRICE_CODEи он должен усреднить все отзывы RATING_CODE и вернуть рассчитанное значение.Я в порядке с возвратом всех данных, кроме среднего рейтинга.

Я работаю с LINQ to Entities 2 дня и с LINQ около 3 недель, так что я действительно новичок;Я жду, пока моя книга LINQ будет доставлена ​​с Amazon.com.Будем благодарны за помощь!

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Это должно выглядеть примерно так:

var avgForMatches = 
    (from r in context.Restaurants
     where r.Cuisines.Any(c => c.CuisineName == cuisineName)
     where r.Prices.Any(p => p.PriceCode == priceCode)
     //... same pattern for other searches.
     select r.RatingCode)
    .Average();
0 голосов
/ 14 июля 2011

Прочтите об агрегатных методах (включая среднее) в 101 образце linq - http://msdn.microsoft.com/en-us/vcsharp/aa336747

...