ASP.net.MVC 5 создайте страницу, которая будет отображать SQL-запрос - PullRequest
0 голосов
/ 03 июля 2018

Я хочу узнать, как я могу добавить к своему контроллеру некоторый SQL-запрос, но я не знаю, как это сделать правильно.

Мой контроллер

public ActionResult Index()
{
   return View(db.Student.ToList());
}

По умолчанию страница дает мне следующие данные.

   ID,  NAME,  STATUS
    1   Bella,  5
    2   Bella,  5
    3   Bella,  7

Я хочу добавить следующий SQL-запрос к контроллеру, который даст мне данные, которые я хочу, чтобы он отображался на странице.

(select distinct id,name,max(status) from students group by id,name)



ID,  NAME,  STATUS

    3   Bella,  7

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Я предлагаю вам использовать linq с предложением group-by, как показано ниже;

var students = from s in db.Student
               group s by s.name into groupedResult
               select new 
               {
                  Name = groupedResult.Key,
                  Max_Status = groupedResult.Max(g => g.Status)
               } ;
0 голосов
/ 03 июля 2018

Если вы хотите сгруппировать данные по Name и отобразить максимальное значение Status с помощью linq, то вы можете сделать, как показано ниже.

var students = db.Student.GroupBy(i => i.Name)
                      .Select(g => new Student()
                        {
                            Name = g.Key,
                            Status = g.Max(row => row.Status),
                            Id = g.Max(row => row.Id)
                        }).ToList();
return View(students);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...