Comment groupe Sous-groupe pour créer la liste des continents où chaque continent a ses propres comtés et chaque pays a ses propres villes comme ce tableauLINQ: Groupement SubGroup
Voici le t-sql:
select Continent.ContinentName, Country.CountryName, City.CityName
from Continent
left join Country
on Continent.ContinentId = Country.ContinentId
left join City
on Country.CountryId = City.CountryId
et le résultat de t-sql:
J'ai essayé, mais il regroupe les données de mauvaise façon j'ai besoin de regrouper exactement comme le tableau ci-dessus
var Result = MyRepository.GetList<GetAllCountriesAndCities>("EXEC sp_GetAllCountriesAndCities");
List<Continent> List = new List<Continent>();
var GroupedCountries = (from con in Result
group new
{
con.CityName,
}
by new
{
con.ContinentName,
con.CountryName
}
).ToList();
List<Continent> List = GroupedCountries.Select(c => new Continent()
{
ContinentName = c.Key.ContinentName,
Countries = c.Select(w => new Country()
{
CountryName = c.Key.CountryName,
Cities = c.Select(ww => new City()
{
CityName = ww.CityName
}
).ToList()
}).ToList()
}).ToList();
Il se regroupe dans le mauvais sens? En quoi est-ce mal? –
Je ne vois même pas de groupe dans le T-SQL. – juharr
Je pense que vous devez regrouper à nouveau dans la projection des premiers groupes: 'Result.GroupBy (x => x.ContinentName) .Sélectionnez (g => g.GroupBy (x => x.CountryName))'. –