Tach!
Worauf bezieht sich dein letzter absatz ( *) )? Was ist da gemixt worden? Wie sieht die korrekte Schreibweise aus?
Auf das Where im ersten Satz meiner Antwort. Das war eine Fußnote. Das da ist jedenfalls deine Query. Den Syntaxfehler im Tabellennamen ignorier ich, das ist ja nur ein Beispiel.
var query = from d in _db-meineTabelle.Where(x => x.datum > firstDate && x.datum < secondDate) select new { d.datum, d.Id, d.plz }
Es gibt jedenfalls die LINQ-Syntax, die an SQL angelehnt ist und neue Schlüsselwörter in C# eingeführt hat. Und man kann auch ganz darauf verzichten und alles mit geketteten Funktionen machen.
from datensatzalias in datenquelle where datensatzalias.eigenschaft == irgendwas select new { datensatzalias.eigenschaft, datensatzalias.andere_eigenschaft }
datenquelle .Where(datensatzalias => datensatzalias.eigenschaft == irgendwas) .Select(alias => new { alias.eigenschaft, alias.andere_eigenschaft})
So sehen die beiden Ansätze aus, wenn man sie nicht mischt. Zu beachten ist, dass im ersten Beispiel der datensatzalias für die gesamte Query gilt. Im zweiten hat jede Methode (hier Where und Select) einen selbständigen Lambda-Ausdruck und die dafür verwendete Variable ist ebenfalls unabhängig von allen anderen Variablen im Code. Damit kann man die Kette auch auseinanderpflücken und in Schritten, auch abhängig von anderen Laufzeitbedingungen, nach Bedarf recht einfach zusammenstellen
dedlfix.