1

从这里的问题开始:Entity Framework Reverse Engineer using Power Tools - No Primary Keys

我使用 Entity Framework Power Tools Beta 2 对数据库进行了逆向工程。这创建了大量 POCO 和一个包含实体映射的映射文件夹。

当我尝试使用“添加控制器”对话框创建控制器时,出现以下消息框:

无法检索巡航模型的元数据。在模型生成期间检测到一个或多个验证错误:\tSystem.Data.Entity.EmdEntityTypes:: Cruise table has no key defined。定义此 EntityType 的键。

对于我试图为其创建控制器的原始表的所有相关表,这重复了很多次。

控制器本身永远不会被创建,按 OK 我会返回到添加控制器对话框。

有问题的模型 definitley 在其映射文件中定义了一个主键:

// 主键 this.HasKey(t => t.cruise_ID);

我究竟做错了什么?

控制器如何找到映射类?

4

2 回答 2

4

我已经能够复制您收到的错误,它与尝试为模型本身而不是实体类型创建控制器有关。

MVC 脚手架旨在针对实体,然后是相关上下文 - 您确定在下拉列表中选择了正确的项目吗?

在此处输入图像描述

在这张图片中:

  • 您的模型下拉列表(我的显示 A (MVCExamples.Models))应该指的是我假设是您的巡航实体。
  • 您的数据上下文应该是创建的 DbContext(我的显示实体(MVCExamples.Models))
于 2012-08-24T18:18:15.567 回答
2

添加 :

using System.ComponentModel.DataAnnotations;

并且 db 类的主键正在调用'

于 2013-06-03T21:01:15.440 回答