【问题标题】:Why `DatabaseGenerated(DatabaseGeneratedOption.Identity)` doesn't work in MVC 4为什么`DatabaseGenerated(DatabaseGeneratedOption.Identity)` 在 MVC 4 中不起作用
【发布时间】:2012-07-02 20:44:18
【问题描述】:

我试图将我的 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 指令或程序集引用?)

【问题讨论】:

  • 首先,您的问题与 MVC(3 或 4)无关,因为您的代码正在处理实体框架。其次,你没有说你使用的是什么版本的 EF,你也没有说你收到了什么错误。由于我的精神力量今天不起作用,你将不得不尝试更具体。
  • @MystereMan 我刚刚使用 VS2012 创建了一个 Internet 应用程序,它本身就有 EF。不知道是什么版本!
  • 如果您可以在问题中包含实际的错误消息,那将会很有帮助。
  • 我建议您多了解一下您正在使用的工具。仅供参考,它是 EF 5 和 C# 5,而不是 C#4。只需查看已安装的 NuGet 包,您就可以找到所有这些。
  • 问题已编辑@MystereMan:我不知道需要版本!!!它是 .Net Framework 4.5 而不是 .Net Framework 5!!!

标签: c# entity-framework ef-code-first asp.net-mvc-migration


【解决方案1】:

DatabaseGeneratedAttributeSystem.ComponentModel.DataAnnotations.Schema .NET 4.5 中的命名空间属性

【讨论】:

  • FWI:您需要在项目中引用 System.ComponentModel.DataAnnotations
【解决方案2】:

如果您想在 .net 4 中使用此属性,您可以使用 EntityFramework 6(甚至是 Nightly Builds)的预发布版本来执行此操作,在 Manage NuGet Pakages 窗口中,从窗口顶部的下拉列表中选择Include Prerelease.

要更新到 Nightly Builds,请在 Pakage Manager Settings 添加此包源:

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

如需完整指南,请参阅EF on GitHub

【讨论】:

    【解决方案3】:

    在某些情况下,您需要将框架从 4.5 或更低版本更改为 4.5.1,然后安装 Entity Framework 6 +,它会被发现

    【讨论】:

    • 谢谢!这对我有用,虽然我不需要安装 EF6,因为我的项目中已经有一个 EF 版本。
    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2012-06-14
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多