So verwalten Sie GetDate () mit Entity Framework

entity-framework sql-server-2008

Frage

Ich habe eine solche Spalte in einer meiner Datenbanktabellen

DateCreated, datetime, default(GetDate()), not null

Ich versuche, das Entity Framework zu verwenden, um eine solche Einfügung in diese Tabelle vorzunehmen ...

        PlaygroundEntities context = new PlaygroundEntities();

        Person p = new Person
        {
            Status = PersonStatus.Alive,
            BirthDate = new DateTime(1982,3,18),
            Name = "Joe Smith"
        };

        context.AddToPeople(p);
        context.SaveChanges();

Wenn ich diesen Code ausführen, erhalte ich die folgende Fehlermeldung

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated.

Also habe ich versucht, das StoreGeneratedPattern so einzustellen, dass es berechnet wird. Irgendwelche Ideen?

Akzeptierte Antwort

Wenn Sie den DateCreated-Typ in datetime2 ändern, kann das Problem möglicherweise behoben werden.

datetime 2007-05-08 12: 35: 29.123

datetime2 2007-05-08 12:35:29. 12345

Ref: http://technet.microsoft.com/en-us/library/bb677335.aspx67


Beliebte Antwort

Sie müssen die edmx-XML-Datei manuell bearbeiten und Ihre SSDL-StoreGeneratedPattern-Attribute auf "Identität" oder "berechnet" setzen. Wenn Sie jedoch Ihren edmx über den Designer aktualisieren, werden Ihre Änderungen überschrieben.

Dies ist ein bekanntes Problem. Bitte beachten Sie die folgenden Links für weitere Details:

Microsoft Connect Ticket

Verwenden einer GUID als EntityKey in Entity Framework 4



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum