ich zwei Entitäten erstellt haben (vereinfacht) in C#:LINQ: Anzeige ergibt sich aus leeren Listen
class Log {
entries = new List<Entry>();
DateTime Date { get; set; }
IList<Entry> entries { get; set; }
}
class Entry {
DateTime ClockIn { get; set; }
DateTime ClockOut { get; set; }
}
ich den folgenden Code verwende die Objekte zu initialisieren:
Log log1 = new Log() {
Date = new DateTime(2010, 1, 1),
};
log1.Entries.Add(new Entry() {
ClockIn = new DateTime(0001, 1, 1, 9, 0, 0),
ClockOut = new DateTime(0001, 1, 1, 12, 0, 0)
});
Log log2 = new Log()
{
Date = new DateTime(2010, 2, 1),
};
Verfahren unter wird verwendet, um die Datum-Protokolle zu erhalten:
var query =
from l in DB.GetLogs()
from e in l.Entries
orderby l.Date ascending
select new
{
Date = l.Date,
ClockIn = e.ClockIn,
ClockOut = e.ClockOut,
};
Das Ergebnis der oben LINQ-Abfrage ist:
Meine Frage ist, was ist die beste Möglichkeit, die obige LINQ-Abfrage neu zu schreiben, um die Ergebnisse aus dem zweiten Objekt, das ich erstellt habe (Log2), aufzunehmen, da es eine leere Liste hat. Mit anderen Worten, ich möchte alle Daten anzeigen, auch wenn sie keine Zeitwerte haben.
würde das erwartete Ergebnis sein: Das
/*
Date | Clock In | Clock Out
01/01/2010 | 09:00 | 12:00
02/01/2010 | |
*/
Sie müssen die Funktion 'executeQuery' posten, da hier alle wichtigen Dinge passieren. –
Gibt es einen Link zwischen Einträgen und Protokollen? – Nix