2011-07-21 13 views
11

Pytam mojego EDM przy użyciu Entity SQL i tracę dokładność milsecond na moich wartości DateTime. Na przykład 2011/7/20 12: 55: 15.333 PM zostaje zmieniony na 2011/7/20 12: 55: 15.000 PM.Struktura obiektu utrata Sql Dokładność DateTime

Potwierdziłem, że w SQL milisekundy są dokładnie rejestrowane.

Jest precyzyjny atrybutu mogę zastosować w .edmx pliku XML, ale nie wiem jakie wartości trzeba,

 <Property Name="Timestamp" 
       Type="DateTime" 
       Nullable="false" 
       Precision="???" /> 

Czy ktoś wie, jak korzystać z tego atrybutu precyzji?

Dzięki.

Odpowiedz

8

To zależy od wersji SQL Server ... zobacz http://seesharper.wordpress.com/2008/07/08/sql-server-datetime-vs-net-datetime-battle-of-accuracy/

Jeśli jest SQL Server 2008 zmiana typ danych w DB do datetime2 a następnie aktualizuje model z DB.

W przeciwnym razie można ustawić Precyzyjność na 3 (3 cyfry części ułamkowej, patrz http://msdn.microsoft.com/en-us/library/cc716737.aspx).

+0

To jest SQL Server 2008 Express (R2). Ale nie mogę zmienić bazy danych, ponieważ nie należy ona do mojego projektu. Czy to jedyne rozwiązanie? –

+0

możesz umieścić 3 w "Precyzji" ... ale edycja .edmx to zła praktyka! – Yahia

+0

OK - dziękuję. Precyzja "3" działa, chociaż musiałem przejść do korzystania z funkcji .GetDateTime (int ordinal) z EntityDataReader. –