【问题标题】:Entity Type Has No Key Defined实体类型没有定义键
【发布时间】:2011-06-09 09:10:50
【问题描述】:

另一个'实体类型'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; }
    }
}

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

我得到这个错误:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我的模型中包含属性,而不是字段。我得到了同样的错误。建议?
    • 我建议您提出自己的问题,发布您的代码和完整的错误消息。
    【解决方案2】:

    为了帮助澄清,这一行:

    public string GMCNumber;

    需要成为:

    public string GMCNumber { get; set; }

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-29
          • 2015-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多