Как получить группу linq to sql по запросу в представлении asp.net mvc? - PullRequest
0 голосов
/ 23 декабря 2009

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

    Public Function FindAllSpaces() Implements ISpaceRepository.FindAllSpaces
    Dim query = _
    From s In db.spaces _
    Order By s.name Ascending _
    Group By s.garageid Into spaces = Group _
    Order By garageid Ascending

    Return query

End Function

Контроллер принимает объект запроса как есть и помещает его в viewdata.model, и, как указано, в настоящее время представление не является строго типизированным, поскольку я не смог понять, как это сделать. Я успешно выполнил запрос в linqpad.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2009

Если вы хотите строго набрать представление, тогда результаты ваших FindAllSpaces должны быть помещены в объект, который затем возвращается вашему представлению.

Таким образом, у вас может быть объект с именем Spaces, и он имеет свойство типа IQueryable и называется Spaces.

Тогда, по вашему мнению, вы можете пройти через Model.Spaces как foreach(var space in Model.Spaces)

Что может быть лучше, так это то, что каждая запись, возвращаемая из вашего запроса, представляет собой отдельный объект под названием Space.

Так что теперь у вашего объекта Spaces есть свойство с именем public IQueryable<Space> Spaces {get;set;}

Теперь, по вашему мнению, вы бы унаследовали от <IQueryable<Spaces>>, и теперь вы можете использовать его так: foreach(Space in Model.Spaces).

Последний шаг - превратить каждое «Пробел» в PartialView, который наследуется от <Space>.

0 голосов
/ 23 декабря 2009

Просто пусть ваш ViewPage наследуется от общего ViewPage , где T равно IEnumerable (или любой другой модели).

 <%@Page ... Inherits="System.Web.Mvc.ViewPage<IEnumerable<Space>> ... %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...