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; }
原文地址:https://www.cnblogs.com/IIXS/p/11702764.html