Почему "DatabaseGenerated (DatabaseGeneratedOption.Identity)" не работает в MVC 4

Я пытался перенести проект MVC 3 на 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; }
}

Я получил ошибку с атрибутом [System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]. Я не знаю, в чем проблема. Кто-нибудь знает?!?

Обновление

Это ошибки:

Тип или имя пространства имен 'DatabaseGeneratedAttribute' не может быть (вам не хватает директивы использования или ссылки на сборку?)

Тип или имя пространства имен DatabaseGenerated не удалось найти ( у вас отсутствует директива using или ссылка на сборку?)

Ответ 1

DatabaseGeneratedAttribute находится в System.ComponentModel.DataAnnotations.Schema атрибут пространства имен в .NET 4.5

Ответ 2

Если вы хотите использовать этот атрибут в .net 4, вы можете использовать предварительную версию EntityFramework 6 (или даже Nightly Builds), чтобы сделать это, в окне Manage NuGet Pakages, из раскрывающегося списка в верхней части окна, выберите Include Prerelease.

Чтобы обновить до Nightly Builds, в Pakage Manager Settings добавить этот источник пакета:

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

Для полного руководства см. EF на GitHub.

Ответ 3

Вам нужно - в некоторых случаях - изменить структуру с 4.5 или меньше до 4.5.1, а затем установить Entity Framework 6 + и найти ее