实体类型没有定义键

时间:2011-06-09 09:10:50

标签: entity-framework-4.1 ef-code-first

另一个'实体类型'x'没有键定义'问题,但我在属性上设置了[Key]属性,所以我有点困惑。

这是我的实体和上下文类:

namespace DoctorDB.Models
{
    public class Doctor
    {
        [Key]
        public string GMCNumber;
        [Required]
        public string givenName;
        [Required]
        public string familyName;
        public string MDUNumber;
        public DateTime MDUExpiry;
        public string MDUCover;
    }

    public class DoctorContext : DbContext
    {
        public DbSet<Doctor> Doctors { get; set; }
    }
}

当我去创建我的控制器时,我选择使用实体框架方法使用此实体和上下文创建它:

enter image description here

我收到此错误:

enter image description here

我唯一想到的是你是否无法在字符串属性上成功使用[Key]。如果你不能那么公平,我会解决它,但如果有人能够证实这种或那种方式,我将不胜感激。

4 个答案:

答案 0 :(得分:16)

您需要将GMCNumber更改为属性而不是字段。

答案 1 :(得分:12)

为了帮助澄清,这一行:

public string GMCNumber;

需要成为:

public string GMCNumber { get; set; }

答案 2 :(得分:4)

当我将该属性定义为私有时,我遇到了相同的错误消息。

答案 3 :(得分:1)

我今天面对类似的问题后遇到了这个帖子。问题是我在将[Key]属性添加到我的模型并且没有编译之后尝试创建脚手架。一旦我用[Key]属性编译,脚手架生成就好了。