2012-07-02 8 views
10

starałem się przenieść MVC 3 projektu MVC 4, ale gdy chciałem przenieść ten model:Dlaczego `DatabaseGenerated (DatabaseGeneratedOption.Identity)` nie działa w 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; } 
} 

dostałem błąd z atrybutem [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]. Nie wiem, o co chodzi. Czy ktoś wie?!?

Aktualizacja

Są to błędy:

typu lub obszaru nazwa 'DatabaseGeneratedAttribute' nie mógł być znaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

Nie można znaleźć nazwy typu lub przestrzeni nazw "DatabaseGenerated" (brakuje , brakuje jakiejś dyrektywy użytkowania lub odniesienia do zespołu?)

+5

Po pierwsze, problem nie ma związku z MVC (albo 3 lub 4), ponieważ twój kod ma do czynienia z Entity Framework. Po drugie, nie mówisz jakiej wersji EF używasz i nie mówisz, jaki błąd otrzymałeś. Ponieważ moje moce psychiczne nie działają dzisiaj, będziesz musiał spróbować być bardziej konkretny. –

+0

@MystereMan Właśnie stworzyłem aplikację internetową przy użyciu VS2012 i sam EF. Nie wiem, jaka to wersja! –

+1

Jeśli możesz podać rzeczywisty komunikat o błędzie w pytaniu, które byłoby pomocne. – Satish

Odpowiedz

24

DatabaseGeneratedAttribute jest w przestrzeni nazw System.ComponentModel.DataAnnotations.Schema atrybutów w .NET 4.5

+0

FWI: musisz mieć System.ComponentModel.DataAnnotations, do którego się odwołujesz w swoim projekcie – cpoDesign

+0

pomógł mi również thanx – sibonile

2

Jeśli chcesz używać tego atrybutu w .NET 4 można użyć wstępną wersję EntityFramework 6 (lub nawet wersje nightly), aby to zrobić, w oknie Manage NuGet Pakages z listy rozwijanej w górnej części okna wybierz Include Prerelease.

Aby zaktualizować do Nightly Buduje w Pakage Manager Settings dodać tego pakietu źródłowego:

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

Pełną przewodnika zobaczyć EF on GitHub.

1

trzeba - w niektórych przypadkach - do zmiany ram z 4,5 lub mniej do 4.5.1, a następnie zainstalować Entity Framework 6 + i okaże się

+0

Dzięki! To działało dla mnie, chociaż nie musiałem instalować EF6, ponieważ miałem już wersję EF w moim projekcie. – mkimmet

Powiązane problemy