Warum wird ein einfacher linq-Befehl im zweiten Fall nicht ausgeführt?

Ich habe die folgende Zeile in meinem Code.

var dates = query.Select(x => EntityFunctions.DiffDays(query.Min(y => y.Date), x.Date));

Allerdings denke ich, dass der Befehl query.Min (y => y.Date) für jedes x ausgeführt wird.

Deshalb möchte ich Folgendes tun

    System.DateTime varMinDate = query.Min(y => y.Date);
    var dates = query.Select(x => EntityFunctions.DiffDays(varMinDate, x.Date))

Der Typ des Feldes Datum bei meinem Modell istSystem.DateTime.

Wenn ich es jedoch auf die zweite Weise ändere, bekomme ich eine Ausnahme

An exception of type 'System.NotSupportedException' occurred in System.Data.Entity.dll but was not handled in user code

Bearbeiten

Die oben erwähnte Abfrage lautet wie folgt

var query = (from b in db.StudentProgressPerDay
                         where b.Student.Equals(InputStudent)
                         orderby b.Date
                         select b);

Warum ist das so? Und wie kann ich das beheben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage