Ich habe ein Problem mit LINQ und ich hatte gehofft, jemand könnte mir erklären, warum. Ich habe diesen Code:Gruppe nach Frage in Linq
List<Spec> specs = GetSpecs(userObject, seasonID, partnershipID);
var query = from s in specs
where (DateTime)s.FinalApprovedDate != null
&& !((DateTime)s.FinalApprovedDate).Equals(DateTime.Parse("1/1/1900 12:00:00 AM"))
group s by s.ForCompanyID into g
select new
{
Vendor = g.Key,
Avg = g.Average(s.FinalApprovedDate.Subtract((DateTime)s.Created_Date).Days)
};
Was würde Ich mag von dieser Abfrage abzurufen ist die durchschnittliche Differenz in Tagen zwischen dem Datum der Registrierung und dem Abschluss Genehmigt Datum für jedes Unternehmen byt der ForCompanyID dargestellt, in dem die Daten nicht null sind oder "1/1/1900". Mein Problem ist, dass ich nicht herausfinden kann, wie man diese Daten von dieser Abfrage bekommt. Von dem, was ich gelesen habe, glaube ich, dass dies die richtige Syntax ist, aber ich bekomme ein "Der Name 's" existiert nicht im aktuellen Kontext auf den s-Werten unter new. Ich habe dies auch mit g hier versucht, aber das tut es nicht haben die beiden Werte Irgendwelche Gedanken
vielleicht möchten Sie DateTime.MinValue statt DateTime.Parse ("1900.01.01 00.00 vergleichen: 00 AM "). Abhängig von der LINQ" Flavor ", die verwendet wird, kann die Parse() für jeden Artikel Vergleich ausgeführt werden. – Lucas
... und (DateTime) s.FinalApprovedDate wird nie null, DateTime ist ein nicht-Nullwerttyp – Lucas
1/1/1900 ist nicht DateTime.MinValue - es ist wahrscheinlich mit t verbunden er minimal mögliche DateTime in seiner Datenbanksoftware. – mquander