2010-11-23 8 views
6

gut, nachdem eine Antwort googeln unendlich viel Zeit verbracht zu haben, ich habe eine andere Frage in dieser Angelegenheit hinzuzufügen ...datetime2 Umwandlung in EF4

i eine Tabelle mit zwei Datetime-Felder haben, erzeugt von EF4 EDMX Designer in VS 2010.

Die generierten Felder in SQL 2008 sind Datetime und nicht Datetime2.

Mit Blick auf das Edmx-Markup sind die Felder vom Typ datetime2.

der Einsatz versagt bei der bekannten Umwandlung Ausgabe datetime2/Datumzeit ....

ich habe die Felder manuell geändert auf der SQL-Tabelle datetime2.

immer noch kein Glück.

Ich vermisse hier wahrscheinlich etwas, kann aber nicht herausfinden, was zum Teufel los ist.

Ich habe sogar versucht die DB vom Designer regenerieren und die edmx aus der db neu zu erstellen ...

immer noch das gleiche Problem.

jede Hilfe wird sehr geschätzt.

+1

Erstellen Sie das edmx-Modell der Datenbank in einer separaten Konsolenanwendung, und versuchen Sie es dort einzufügen. (Neues Element, Entitätsdatenmodell, aus Datenbank hinzufügen) Wenn es funktioniert - löschen Sie eine notwendige Tabelle in der Arbeit edmx und Update-Modell. Es funktioniert immer für mich. – vorrtex

Antwort

0

Ich hatte ein ähnliches Problem verursacht einmal durch das Erstellen des Modells von SQL Server 2005 und dann versuchen, mit SQL Server 2008 zugreifen. Ich behoben dies durch Editieren der Edmx-Datei mit Notepad ++ oder gleichwertiges Ändern der 2005 bis 2008 in der zweiten Zeile der Datei edmx:

<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx"> 

die andere Sache, die Tabelle in der edmx und rechts klicken sie auf Aktualisieren Modell aus Datenbank, um zu versuchen löscht es mit dem richtigen Datentyp Runde diesmal hoffentlich erneut hinzuzufügen.

0

Eine Lösung für dieses Problem besteht darin, sicherzustellen, dass Sie die Datetime in Ihren Entitäten korrekt initialisieren. Datetime ist eine Struktur, sie wird standardmäßig auf 0 initialisiert.

Ich habe eine Weile nach dem gesucht.