【发布时间】:2013-07-12 12:20:51
【问题描述】:
我使用 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 并重新开始,因为它需要很长时间才能正确,这可能无法解决问题。
有人可以帮我解决这个问题吗?谢谢。
【问题讨论】:
-
我忘了说 edmx 在 Visual Studio 中也验证成功
-
请注意,如果您在 .NET 4.5 中使用复合键,则需要使用 EF 的预发布版本,因为许多属性被移动到不同的命名空间。我收到了这个确切的消息,因为 EF 无法识别我的复合键。