找不到类型或命名空间名称“Key”

时间:2014-09-25 18:01:06

标签: c# entity-framework

实体框架的[Key]属性对我不起作用。我有一个console应用程序,我正在尝试添加此类:

public class Post
{
    [Key]
    public int IDPost { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public int IDBlog { get; set; }
    public virtual Blog Blog { get; set; }
}

我收到这些错误:

  

类型或命名空间名称'密钥'找不到(你错过了使用指令或汇编引用吗?)

     

类型或命名空间名称' KeyAttribute'找不到(你错过了使用指令或汇编引用吗?)

我添加了这个:

using System.Data.Entity;

我已将这些引用添加到项目中:

EntityFramework
EntityFramework.SqlServer
System.ComponentModel.DataAnnotations

我正在使用EF6和VS2012。

我错过了什么参考?

3 个答案:

答案 0 :(得分:9)

在EF6中,System.Data.Entity已替换为System.Data.Entity.Core。确保您不再引用任何EF5 dll并使用

替换使用的包含
System.Data.Entity.Core

此外,[Key]来自

System.ComponentModel.DataAnnotations

命名空间。如果你将它包含在你的类的using语句中,它应该编译。

答案 1 :(得分:0)

我在创建asp.net Webforms应用程序时使用Visual Studio 2010得到了同样的错误。我按照这些步骤对我有用。

  1. 打开nugetpackage manager并搜索System.data.entity。
  2. 安装它。
  3. 引用使用System.ComponentModel.DataAnnotations;

答案 2 :(得分:0)

对于我自己,我使用的是小写的[key]而不是[Key],因此请务必在遇到此问题时进行检查。