实体框架4和代码优先CTP 5 - 缺少密钥

Ben*_*sen 3 entity-framework code-first ef-code-first

有人能理解这个错误吗?

在模型生成期间检测到一个或多个验证错误:

System.Data.Edm.EdmEntityType :: EntityType'Address'没有定义键.定义此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; }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:对于一个既有Key属性数据注释又有PK的传统ID名称的类,错误如何产生任何意义.

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

Mor*_*avi 8

像克雷格提到的那样,制作ID一个房产将解决你的问题.

public int ID { get; set; }
Run Code Online (Sandbox Code Playgroud)

此外,您不需要该[Key]属性ID,它将首先根据约定通过代码识别为对象标识符(即主键).