无法检索模型的元数据。在模型生成期间检测到一个或多个验证错误:表没有定义键

问题描述 投票:1回答:2

继这个问题之后:Entity Framework Reverse Engineer using Power Tools - No Primary Keys

我使用Entity Framework Power Tools Beta 2反向设计了一个数据库。这创建了大量的POCO和一个带有实体映射的映射文件夹。

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

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

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

控制器本身永远不会创建,按下确定后我将返回到添加控制器对话框。

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

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

我究竟做错了什么?

控制器如何找到映射类?

entity-framework-4.1
2个回答
4
投票

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

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

在此图像中:

  • 您的模型下拉(我的展示A(MVCExamples.Models))应该参考我假设的您的邮轮实体。
  • 您的数据上下文应该是创建的DbContext(我的实体显示实体(MVCExamples.Models))

2
投票

添加:

using System.ComponentModel.DataAnnotations;

并且db类的主键是调用'

© www.soinside.com 2019 - 2024. All rights reserved.