为什么`DatabaseGenerated(DatabaseGeneratedOption.Iden

2019-09-18 23:57发布

我想我的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”找不到(是否缺少using指令或程序集引用?)

类型或命名空间名称“DatabaseGenerated”找不到(是否缺少using指令或程序集引用?)

Answer 1:

DatabaseGeneratedAttribute是在System.ComponentModel.DataAnnotations.Schema在.NET 4.5的命名空间属性



Answer 2:

如果你想使用.NET 4的这个属性可以使用的EntityFramework 6的预发布版本(甚至是每晚构建)要做到这一点,在Manage NuGet Pakages窗口,从窗口顶部的下拉列表中,选择Include Prerelease

要更新到每晚构建,在Pakage Manager Settings添加此套餐来源:

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

对于一个完整的指南,请在GitHub上EF 。



Answer 3:

你所需要的 - 在某些情况下 - 的框架从4.5或更低至4.5.1变更,然后再安装实体框架6 +,它会被发现



文章来源: Why `DatabaseGenerated(DatabaseGeneratedOption.Identity)` doesn't work in MVC 4