Entity framework asp.net mvc4实体框架4:无法创建控制器,I';我什么都试过了

Entity framework asp.net mvc4实体框架4:无法创建控制器,I';我什么都试过了,entity-framework,asp.net-mvc-4,visual-studio-2012,Entity Framework,Asp.net Mvc 4,Visual Studio 2012,我正在使用Visual Studio 2012和MVC4以及Entity Framework 4构建一个网站。 我创建了所有模型类,以及它们的所有属性(它们之间有一些关系)。到目前为止,我的类只有一堆属性(还没有方法) 但每当我尝试为一个包含集合的类创建控制器时,就会出现以下错误:无法检索“model name”的元数据。值不能为null。参数名称:键。 我在谷歌上搜索了它并找到了不同的解决方案,但没有一个有效:我尝试将所有主键属性重命名为“Id”(它们也都用[key]注释),我还尝试在数据上下

我正在使用Visual Studio 2012和MVC4以及Entity Framework 4构建一个网站。 我创建了所有模型类,以及它们的所有属性(它们之间有一些关系)。到目前为止,我的类只有一堆属性(还没有方法)

但每当我尝试为一个包含集合的类创建控制器时,就会出现以下错误:无法检索“model name”的元数据。值不能为null。参数名称:键。

我在谷歌上搜索了它并找到了不同的解决方案,但没有一个有效:我尝试将所有主键属性重命名为“Id”(它们也都用[key]注释),我还尝试在数据上下文类中注释构造函数,我检查了我的连接名为DefaultConnection

这是我无法为其创建控制器的类之一:

public class JobOffer
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int JobOfferId { get; set; }
        public Company Company { get; set; }
        public OfferState State { get; set; }
        public virtual ICollection<OfferApplicant> Applicants { get; set; }
        public virtual ICollection<Requirement> Requirements { get; set; }
    }
公共类职位优惠
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int-JobOfferId{get;set;}
上市公司{get;set;}
public offers状态{get;set;}
公共虚拟ICollection申请者{get;set;}
公共虚拟ICollection要求{get;set;}
}
(我已经在没有[DatabaseGeneratedAttribute]注释的情况下进行了尝试,但没有任何帮助)

OfferState类是一个抽象类,它有两个子类:Open和Closed(它们在那里实现状态模式)

OfferApplication类将1个JobOffer映射为1个申请人,因为这是一个多对多关系,所以我创建了一个新表

Requirement类也是一个抽象类,它有几个子类,如年龄、教育程度、面积等,还有一个CompositeRequirement,它有一个公共虚拟ICollection Requirements{get;set;}集合(它是一个复合模式)

这些类甚至还没有方法,它们所拥有的只是它们的属性

有什么线索吗


谢谢

你需要创建一个简单版本的应用程序,并在此处发布代码,以供其他人帮助。谢谢,Ray。我编辑了我的原始消息以添加一些代码。请尝试重新安装MVC。这可能是由当前安装引起的。还要确保在添加控制器之前构建解决方案。