#c# #entity-framework #linq
#c# #entity-framework #linq
Вопрос:
У меня есть модель, в которой одним из полей является TimeInClub, я пытаюсь group by
создать таблицу для каждого TimeInClub
, но я получаю ошибку
диктонарный запрашивает элемент модели типа system.collections.generic.ienumeruble
Код в контроллере является
public class FansController : Controller
{
private dbFan db = new dbFan();
public ActionResult Index()
{
var group = from f in db.fans
group f by f.TimeInClub;
return View(group);
}
В представлении, которое у меня есть (моя модель называется Fans, мой контекст db называется fans)
@model IEnumerable<fan_Club.Models.Fans>
Спасибо.
Комментарии:
1. Вы говорите, что вы группируете по «TimeInClub», вы действительно хотите упорядочить по «TimeInClub? Как это представлено на ваш взгляд?
Ответ №1:
Ошибка, которую вы получаете, связана с тем, что возвращаемый вами тип и тип @model
не совпадают. Результатом a GroupBy
является IEnumerable<IGrouping<TKey, TSource>>
, а не IEnumerable<fan_Club.Models.Fans>
. Вы должны спроецировать на тип, который соответствует @model
или изменить @model
Если вы хотите OrderBy
, как предложил Дэвид в своем комментарии, тогда:
var group = from f in db.fans
orderby f.TimeInClub
select f;
Чтобы упорядочить его по убыванию, добавьте descending
ключевое слово:
orderby f.TimeInClub descending
Комментарии:
1. спасибо за помощь, которая мне нужна для использования group by, могу ли я преобразовать groupby, чтобы возврат был таким, как требуется?
2. @user7024226 — Но тогда какой смысл его группировать? В основном вопрос в том, какие данные вы хотите вернуть? Какова цель этого запроса?
3. порядок по дает тот же эффект, который мне нужен, но мне нужно использовать groupby (по моему запросу на лекцию), чтобы сгруппировать всех людей, которые проводят одинаковое время в клубе
4. @user7024226 — но после того, как вы сгруппируете его, что вам нужно?
GroupBy
актуально, когда вы отчаянно хотите выполнить некоторые операции над каждой группой5. хорошо, я меняю свой вопрос, я хочу сгруппировать по имени и подсчитать вхождения