C# 为什么“DatabaseGenerated(DatabaseGeneratedOption.Identity)”在MVC4中不起作用
我试图将我的MVC 3项目迁移到MVC 4,但当我想移动此模型时:C# 为什么“DatabaseGenerated(DatabaseGeneratedOption.Identity)”在MVC4中不起作用,c#,entity-framework,ef-code-first,asp.net-mvc-migration,C#,Entity Framework,Ef Code First,Asp.net Mvc Migration,我试图将我的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 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.DatabaseGenerateOptions.Identity]属性中出错。我不知道有什么问题。有人知道吗
更新
以下是错误:
无法指定类型或命名空间名称“DatabaseGeneratedAttribute”
发现是否缺少using指令或程序集引用
找不到类型或命名空间名称“DatabaseGenerated”
是否缺少using指令或程序集引用
DatabaseGeneratedAttribute位于
.NET 4.5中的System.ComponentModel.DataAnnotations.Schema命名空间属性如果要在.NET 4中使用此属性,可以使用EntityFramework 6的预发布版本,甚至是夜间版本来执行此操作,在Manage NuGet Pakages窗口中,从窗口顶部的下拉列表中,选择Include Prerelease 要更新到夜间版本,请在“打包管理器设置”中添加此包源:
http://www.myget.org/F/aspnetwebstacknightly/
有关完整的指南,请参见。在某些情况下,您需要将框架从4.5或更低版本更改为4.5.1,然后安装Entity framework 6+,然后会发现它。首先,您的问题与MVC 3或4无关,因为您的代码处理的是Entity framework。第二,你没有说你使用的是什么版本的EF,也没有说你犯了什么错误。由于我的灵力今天不起作用,你必须尝试更具体一些。@MystereMan我刚刚用VS2012创建了一个互联网应用程序,它本身就有EF。我不知道是什么版本!如果你能在问题中包含实际的错误信息,那会很有帮助。我建议你多学习一些你正在使用的工具。仅供参考,是EF 5和C5,不是C4。您可以通过查看已安装的NuGet软件包来了解所有这些。问题编辑@MystereMan:我不知道需要这个版本!!!而且它是.NETFramework4.5而不是.NETFramework5!!!FWI:您需要在项目中引用System.ComponentModel.DataAnnotations谢谢!虽然我不需要安装EF6,因为我的项目中已经有了EF的一个版本,但这对我来说很有效。