EF迁移时报错“未定义键。请为该 EntityType 定义键。

Posted iixs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF迁移时报错“未定义键。请为该 EntityType 定义键。相关的知识,希望对你有一定的参考价值。

模型生成过程中检测到一个或多个验证错误:

iXS.Models.OrderDetails: : EntityType“OrderDetails”未定义键。请为该 EntityType 定义键。
iXS.Models.OrderSummary: : EntityType“OrderSummary”未定义键。请为该 EntityType 定义键。
OrderDetailses: EntityType: EntitySet“OrderDetailses”基于未定义任何键的类型“OrderDetails”。
OrderSummaries: EntityType: EntitySet“OrderSummaries”基于未定义任何键的类型“OrderSummary”。

当运行程序时,报了这个错误。检查了一番,发现错误是没有定义主键。

Code First默认约定将命名为Id或“类名+Id”的属性视为表的键。
所以,当你设置的主键是自己没有按默认规则命名的话,需要引入。

然后就可以设置主键了。直接在属性前加上[Key]

 1 using System;
 2 using System.ComponentModel.DataAnnotations;
 3 
 4 namespace iXS.Models.BasicDataManage
 5 {
 6     /// <summary>
 7     /// ProductInfo Entity Model
 8     /// </summary>
 9     public class ProductInfo
10     {
11             
12         /// <summary>
13         /// 主键
14         /// </summary>
15         [Key]    
16         public  int  F_Id { get; set; }
17         
18         /// <summary>
19         /// 产品名称
20         /// </summary>
21             public  String  ProductName { get; set; }

 

以上是关于EF迁移时报错“未定义键。请为该 EntityType 定义键。的主要内容,如果未能解决你的问题,请参考以下文章

vs2013, EF6.0.0.0 使用Migrations来更新数据库时报错

EF 使用lambda表达式 更新一对多数据时报错

BIEE迁移过后,在设置用户登录默认页时报错:已拒绝用户访问路径/user/......

kettle从oracle向mysql迁移大数据量时报错,求教

EF6添加mysql的edmx实体时报错:无法生成模型:“System.Data.StrongTypingException: 表“TableDetails”中列“IsPrimaryKey”的值为 D

Django项目与mysql交互进行数据迁移时报错:AttributeError: 'str' object has no attribute 'decode'(示例代