2009-06-30 2 views
5

Ich versuche, einige Datensätze von MSSQL DB mit EntityObject mit EntitySQL Abfrage abzurufen. Das Feld, das ich zum Filtern verwende, ist datetime. Die generierte Abfrage, die ohne Millisekunde projektiert wird, an den SQL Server gibt nichts zurück. Wenn ich die Millisekunden addiere, bekomme ich Ergebnisse.Entity SQL vergleichen datetime ohne Millisekunden

Wie kann ich das EntitySQL verwenden, um Ergebnisse ohne die Millisekunden zu erhalten?

danke.

Antwort

3

Es ist nicht elegant, aber das ist für mich:

foos.SingleOrDefault(f => f.EntryDate.Year == bar.EntryDate.Year && 
          f.EntryDate.Month == bar.EntryDate.Month && 
          f.EntryDate.Day == bar.EntryDate.Day && 
          f.EntryDate.Hour == bar.EntryDate.Hour && 
          f.EntryDate.Minute == bar.EntryDate.Minute && 
          f.EntryDate.Second == bar.EntryDate.Second); 
1

Eine Möglichkeit besteht darin, eine Ansicht Ihrer Daten zu erstellen, wobei Ihre datetime-Spalte in smalldatetime konvertiert wird (ohne Millisekunden).

Fügen Sie dann die Ansicht zu Ihrem Entity-Framework-Modell hinzu und lesen Sie die Daten über die Ansicht.

Hoffnung hilft diese

Shiraz

0

Behelfslösung I ist bei der ersten als .ToBinary holen Speicher Datum gefunden() dann, wenn Sie gerade tun, um neue Datetime-Filter (Binary) und damit vergleichen.