Ich arbeite an einem alten WinForms-Grid und habe zwei Modelle, die ich verflachen und einem DataGridView zuweisen möchte.Wie verschachtelte Objekte (LINQ) geglättet werden
Hier sind meine Beispielmodelle.
public class StockItem
{
public string StockName { get; set; }
public int Id { get; set; }
public List<Warehouse> Warehouses { get; set; }
}
public class Warehouse
{
public string WarehouseName { get; set; }
public int Id { get; set; }
}
Die Daten arbeitet in einer Weise, dass ein Lager muss zuerst und jedem StockItem
dann zugewiesen erstellt werden. A StockItem
kann alle Lager haben oder nur eines haben.
Ich muss die Daten abflachen, so dass das Raster zeigt die StockName
und dann alle zugehörigen Lager für den Lagerartikel.
Beispiel
StockCode1 Warehouse1 Warehouse2 Warehouse3
StockCode2 Warehouse1 Warehouse2
StockCode2 Warehouse1 Warehouse3
Ich habe versucht, dies über eine Linq-Abfrage zu tun, sondern nur einen Datensatz pro Lager lieferbar \ Warehouse erhalten.
Vielleicht hilft dies? http://stackoverflow.com/questions/6428940/how-to-flatten-nested-objects-with-linq-expression –
Dies ist nicht wirklich flach, aber Kreuztabellen/Pivoting –
Was wäre der resultierende Datentyp? Gibt es eine maximale Anzahl von möglichen Lagern, die einem StockItem zugeordnet werden können? Ich bin nicht mit dem WinForms 'DataGridView' vertraut, so dass ich etwas vermisse, aber nicht müssen Sie es an eine Sammlung von stark typisierten Objekten binden?Es scheint, dass dies bei einer variablen Anzahl von Lagern nicht möglich ist. –