ASP.NET MVC 5 - EntityType没有定义键

时间:2015-11-09 17:45:48

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我是ASP.NET MVC的新手,我正在努力学习,但我有以下错误:

  

“无法检索'AEMOS.Models.Proyects'的元数据。在模型生成期间检测到一个或多个验证错误:

     

Proyects :: EntityType'Proyects'没有定义键。定义此EntityType的密钥。

     

Proyects:EntityType:EntitySet'Proyects'基于没有定义键的'Proyects'类型。

我已经在Google上搜索了这个错误,即使在StackOverflow中也是如此,但是无法取得成功。

这是我的班级:

using System;
using System.ComponentModel.DataAnnotations;
using System.Globalization;

namespace AEMOS.Models
{
    public class Proyects
    {
        [Key]
        public int ProyectsId { get;set;}
        public string Name { get; set; }
        public int Year { get; set; }
        public Boolean Active = false;


    }
}

我为控制器创建选择了MVC 5 Controller with views, using Entity Framework。在下一个窗口中,我选择了模型Proyects,数据上下文ApplicationDbContext和选定的布局。

我尝试了多个类配置(没有[Key],键名为Id而不是ProyectsId,...)。

你知道发生了什么吗?

1 个答案:

答案 0 :(得分:1)

我很确定之前已经回答了这个问题,但我找不到重复的内容。

脚手架向导根据实体框架实体类型生成控制器和视图,它会查看您的二进制文件,而不是您的代码。

因此,在对向导进行更改以获取这些更改(例如添加Key属性)之后,您需要编译(构建)包含实体类型的程序集。