2011-02-08 62 views
3

有人可以理解这个错误吗?模型生成过程中检测到实体框架4和代码第一CTP 5 - 缺少密钥

一个或多个验证错误:

System.Data.Edm.EdmEntityType:的EntityType“地址”没有定义的关键。为此EntityType定义密钥。 System.Data.Edm.EdmEntitySet:EntityType:EntitySet Addresses基于没有定义键的类型Address。

我定义这个实体:

public class Address 
{ 
    [Key] 
    public int ID; 

    [Required] 
    [MinLength(1)] 
    [MaxLength(200)] 
    public string Address1 { get; set; } 

    [MinLength(1)] 
    [MaxLength(200)] 
    public string Address2 { get; set; } 

    [Required] 
    [MinLength(1)] 
    [MaxLength(10)] 
    public string Zip { get; set; } 

    [MinLength(1)] 
    [MaxLength(100)] 
    public string Province { get; set; } 

    public virtual US_State State { get; set; } 

    [Required] 
    public virtual Country Country { get; set; } 
} 

我的问题是:如何在错误使一个类都具有一个关键属性数据注解以及其PK传统的ID名字任何意义。

我认为这个类满足从它生成一个有意义的实体所需的所有规则。

+4

为什么你的ID是一个字段而不是属性? – 2011-02-08 21:35:12

+0

@Caig:因为我错过了;-) – 2011-02-18 12:54:48

回答

8

像克雷格提到的,使ID属性将解决您的问题。

public int ID { get; set; } 

此外,你不需要在ID[Key]属性,它会被认为是第一个基于公约对象标识符(即主键)的代码。

相关问题