11 Stimmen

Warum funktioniert `DatabaseGenerated(DatabaseGeneratedOption.Identity)` nicht in MVC 4

Ich habe versucht, mein MVC 3-Projekt auf MVC 4 zu verschieben, aber als ich dieses Modell verschieben wollte:

public class Link
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ID { get; set; }

    [DisplayName("Kurze URL")]
    public string SURL { get; set; }

    [DisplayName("Allgemeiner Link")]
    public string OriginalURL { get; set; }

    [DisplayName("Klickanzahl")]
    public int ClickCount { get; set; }
}

public class LinkDBContext : DbContext
{
    public DbSet Links { get; set; }
}

Ich habe einen Fehler mit dem [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)] Attribut erhalten. Ich weiß nicht, was das Problem ist. Weiß jemand etwas?!?

Update

Das sind die Fehler:

Der Typ oder Namespace 'DatabaseGeneratedAttribute' konnte nicht gefunden werden (fehlt Ihnen eine Verweis- oder Assemblyverweisung?)

Der Typ oder Namespace 'DatabaseGenerated' konnte nicht gefunden werden (fehlt Ihnen eine Verweis- oder Assemblyverweisung?)

27voto

Erik Funkenbusch Punkte 91649

DatabaseGeneratedAttribute befindet sich im System.ComponentModel.DataAnnotations.Schema Namespace-Attribut in .NET 4.5

2voto

Mahmood Dehghan Punkte 7001

Wenn Sie dieses Attribut in .NET 4 verwenden möchten, können Sie die Vorabversion von EntityFramework 6 (oder sogar Nightly Builds) verwenden, um dies zu tun. Öffnen Sie das Fenster Manage NuGet Pakages und wählen Sie oben im Fenster im Dropdown-Menü Include Prerelease aus.

Um auf Nightly Builds zu aktualisieren, fügen Sie in den Pakage Manager Settings diese Package-Quelle hinzu:

http://www.myget.org/F/aspnetwebstacknightly/

Weitere Informationen finden Sie in EF auf GitHub.

1voto

d4c0d312 Punkte 729

Sie müssen gegebenenfalls das Framework von 4.5 oder niedriger auf 4.5.1 ändern und dann Entity Framework 6 + installieren, damit es gefunden wird

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X