2012-07-02 11 views
10

Ich habe versucht, mein MVC 3-Projekt zu MVC 4 zu bewegen, aber wenn ich wollte, um dieses Modell bewegen:Warum `DatabaseGenerated (DatabaseGeneratedOption.Identity)` funktioniert nicht in MVC 4

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

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

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

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

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

ich eine Fehlermeldung anzeigt mit [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)] Attribut. Ich weiß nicht, was das Problem ist. Weiß jemand?!?

aktualisieren

Dies sind die Fehler:

Der Typ oder Namespace-Name 'DatabaseGeneratedAttribute' nicht gefunden werden konnte (sind eine using-Direktive oder ein Assemblyverweis fehlt?)

Der Typ oder Namespacename 'DatabaseGenerated' konnte nicht gefunden werden (sind Ihnen fehlt eine Verwendungs-Richtlinie oder eine Assembly-Referenz?)

+5

Zuerst Ihr Problem ist unabhängig von MVC zu finden (entweder 3 oder 4), da sich Ihr Code mit Entity Framework beschäftigt. Zweitens, Sie sagen nicht, welche Version von EF Sie verwenden, und Sie sagen nicht, welchen Fehler Sie erhalten haben. Da meine psychischen Kräfte heute nicht funktionieren, müssen Sie versuchen, genauer zu sein. –

+0

@MystereMan Ich habe gerade eine Internet-Anwendung mit VS2012 erstellt und es hat EF selbst. Ich weiß nicht, welche Version ist! –

+1

Wenn Sie die tatsächliche Fehlermeldung in die Frage einfügen können, die hilfreich wäre. – Satish

Antwort

24

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

+0

FWI: Sie müssen System.ComponentModel.DataAnnotations referenziert in Ihrem Projekt haben – cpoDesign

+0

hat mir auch geholfen danke – sibonile

2

Wenn Sie in .net dieses Attribut verwenden möchten 4 Sie Prerelease-Version von EntityFramework 6 (oder sogar Nightly Builds), dies zu tun können, Wählen Sie im Fenster Manage NuGet Pakages aus der Dropdown-Liste oben im Fenster die Option Include Prerelease.

zu aktualisieren, um Nightly Builds, in Pakage Manager Settings diese Paketquelle hinzufügen:

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

Eine vollständige Anleitung finden Sie EF on GitHub.

1

Sie benötigen - in einigen Fällen - den Rahmen von 4,5 oder weniger auf 4.5.1 zu ändern und dann Entity Framework installieren 6 + und es wird

+0

Danke! Dies funktionierte für mich, obwohl ich EF6 nicht installieren musste, da ich bereits eine Version von EF in meinem Projekt hatte. – mkimmet

Verwandte Themen