Mam problem z LINQ a konkretnie group by.
Mam 3 klasy:
public class Model1
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public int Number { get; set; }
}
public class Model2
{
public int Id { get; set; }
public string Name { get; set; }
public List<Info> Info { get; set; }
}
public class Info
{
public string Codes { get; set; }
public int Numbers { get; set; }
}
Załóżmy, że moja lista Modeli1 wygląda tak:
var models = new List<Model1>()
{
new Model1 { Id = 1, Name = "Name1", Code = "001", Number = 1 },
new Model1 { Id = 1, Name = "Name1", Code = "002", Number = 3 },
new Model1 { Id = 1, Name = "Name1", Code = "003", Number = 4 },
new Model1 { Id = 1, Name = "Name1", Code = "004", Number = 7 },
new Model1 { Id = 2, Name = "Name2", Code = "001", Number = 1 },
new Model1 { Id = 2, Name = "Name2", Code = "000", Number = 2 },
new Model1 { Id = 2, Name = "Name2", Code = "004", Number = 11 },
new Model1 { Id = 3, Name = "Name3", Code = "001", Number = 2 }
};
W jaki sposób przekształcić moją listę do listy Modeli2, tak aby:
Id w Modelu1 => Id w Modelu2
Name w Modelu1 => Name w Modelu2
Code w Modelu1 => Lista Codes w Info w Modelu2
Numbers w Modelu1 => Lista Numbers w Info w Modelu2
Czyli chce miec wynik:
Liste Modeli2, ktory bedzie zawieral:
3 rekordy, grupowane po Id i Name (dla rekordu o Id np 1, Name zawsze jest stale czyli Name1),
Oraz liste Info odpowiednio wypelniona, czyli Id1 bedzie mial 4 obiekty Info w liscie itd.
Jak coś takiego zrobic, mysle ze bedzie trzeba uzyc group by, ale jak zrobic w selectcie tak zeby liste info uzupelniac? Bo z tym mam problem?
Pozdrawiam