Verwendung von DateTime in LINQ zu Entitäten

7

Ich habe eine PostgreSQL-Datenbank, die über Entity Framework Code First mit dem Programm interagiert.

Die Datenbank enthält eine Tabelle "Benutzer" mit der Spalte "Besuch" von DateTime.

Die Anwendung wird wie folgt beschrieben:

%Vor%

Ich versuche diese Abfrage auszuführen;

%Vor%

Aber eine Ausnahme bekommen: NotSupportedException

Was ist los?

    
pma11 24.05.2013, 13:33
quelle

4 Antworten

10
Die Eigenschaft

DateTime.Date wird nicht unterstützt. Sie müssen stattdessen die Methode SqlFunctions.DatePart verwenden. Es wird mit DATEPART TSQL -Methode innerhalb der generierten SQL-Abfrage enden.

%Vor%     
MarcinJuraszek 24.05.2013, 13:38
quelle
15

Verwenden Sie die Klasse EntityFunction zum Trimmen des Zeitabschnitts.

%Vor%

Quelle: Ссылка

    
Mayur Borad 24.05.2013 13:42
quelle
3

Das Problem besteht darin, dass der LINQ-Provider versucht, DateTime.Now.Date in eine Datenbankmethode zu konvertieren, was standardmäßig nicht möglich ist. Der Trick beim Durchführen eines Datumsvergleichs besteht darin, eine DateTime -Instanz zu erstellen, deren Zeitkomponente auf den Standardwert gesetzt ist. Weitere Informationen erhalten Sie hier und hier .

    
Erik Schierboom 24.05.2013 13:37
quelle
1

Mayur Borads Antwort (IMHO korrekter als die angenommene Antwort) ist überholt:

System.Data.Entity.Core.Objects.EntityFunctions ist veraltet. Sie sollten stattdessen System.Data.Entity.DbFunctions verwenden.

%Vor%     
Tim S 13.12.2014 05:29
quelle

Tags und Links