Как сделать категории, подкатегории, подкатегории с mvc? - PullRequest
1 голос
/ 06 февраля 2011

У меня три класса

public class CountryListViewModel
{
    public IEnumerable<CountryViewModel>
    Countries { get; set; }
}

public class CountryViewModel
{
    public string CountryName { get; set; }
    public string State { get; set; }
    public IEnumerable<CityViewModel> Cities { get; set; }
}

public class CityViewModel
{
    public string CityName { get; set; }
    public string CityLink { get; set; }
}

Использование linq для группировки объектов по странам, и все работает как задумано. но я также должен группировать по штатам. Не могли бы вы помочь мне сначала изменить свой запрос на группу по странам, а затем по штатам?

var query = from c in _db.MyTable
                        where c.IsActive && c.Country == country 
                        group c by c.Country
                            into loc
                            select new CountryViewModel()
                            {
                                CountryName = loc.Key,
                                Cities = loc.Select(s => new CityViewModel() { CityName = s.City, CityLink = s.City }).Distinct()
                            };

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Я нашел решение сам

var query = from c in _db.MyTable
            where c.IsActive && c.Country == country 
            group c by new{ c.Country, c.State}
            into loc
                    select new CountryViewModel()
                                {
                                    CountryName = loc.Key.Country,
    State = loc.Key.State,
                                    Cities = loc.Select(s => new CityViewModel() { CityName = s.City, CityLink = s.City }).Distinct()
                                };
0 голосов
/ 06 февраля 2011
var q = from i in query 
        group i by i.state into st 
        select new with { .State = st.Key,
                          .Countries = (from c in st group c by c.Country into ctr 
                                        select new with {.Country = ctr.Key,
                                        .Cities = ctr})

Понятия не имею, если это работает, просто введите его здесь, не проверяя и не глядя на вашу модель данных.

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