2

我已经使用 Entity Framework 4.1 和 MS SQL Server 2008 创建了一个 VS 2010、.Net 4、MVC 4 应用程序。

该应用程序分为一个 MVC Web 项目、一个服务项目和多个实体项目。每个实体项目都包含一个 edmx 文件和一个上下文。edmx 文件是从数据库生成的,而不是代码优先。

我的应用程序编译并成功运行,直到我访问引用一个特定 edmx 文件的页面,然后我收到错误:

System.Data.Edm.EdmEntityType: : EntityType '<Entity>' has no key defined. Define the key for this EntityType. 

System.Data.Edm.EdmEntitySet: EntityType: EntitySet <Entity>s is based on type <Entity> that has no keys defined. 

edmx 包含 22 个表,我收到了其中 8 个表的消息。

这些表都包含数据库中的主键,并且这些似乎已被带到 edmx,因为 edmx 通过正确的字段显示键符号,并且如果您查看字段 Entity Key = True 的属性。所有其他实体项目都正常工作,其中一些包含一些在此处引起问题的相同表。

我已经删除了一些有问题的表并重新添加了它们,但这并没有帮助。我不愿意删除整个 edmx 并重新开始,因为它需要很长时间才能正确,这可能无法解决问题。

有人可以帮我解决这个问题吗?谢谢你。

4

1 回答 1

0

让我们假设一个属性 Id 映射到您的主键,那么您必须使用如下属性装饰它的属性[key]

[Key]
public int Id { get; set; }
于 2013-07-27T18:09:41.003 回答