【问题标题】:ASP.NET MVC 5 - EntityType has no key definedASP.NET MVC 5 - EntityType 没有定义键
【发布时间】:2015-11-09 17:45:48
【问题描述】:

我是 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 来创建控制器。在下一个窗口中,我选择了 Model Proyects、Data Context ApplicationDbContext 和选定的布局。

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

你知道发生了什么吗?

【问题讨论】:

  • 你编译了应用程序吗?
  • 哦!!!就是这样,对不起,如果我是一个菜鸟,没有读过任何关于编译的东西。非常感谢大家。您可以发布作为标记为已完成的答案吗?

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


【解决方案1】:

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

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

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

【讨论】:

  • 感谢@codecaster 的帮助和进一步的解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2016-03-16
  • 2013-08-04
  • 2012-12-10
  • 2016-09-26
相关资源
最近更新 更多