2012-10-17 30 views
1

我正在使用EF反向工程师代码首先为了获得我的POCO和映射表。 我得到folowing异常:EntityType'MYPOCO'没有定义的键。定义此EntityType的关键字。 我在pk字段添加了[Key]属性,它工作正常。但是:首先使用EF 5反向工程代码,为什么[Key]加上HasKey()?

为什么[关键]属性是否要在POCO PK属性设置

[Key] // what's the reason for this redundancy with HasKey() in mapping class ? 
public int ID_MYPOCO { get; set; } 

它在映射类媒体链接提到...

public class MYPOCOMap : EntityTypeConfiguration<MYPOCO> 
{ 
    public MYPOCOMap() 
    { 
     // Primary Key 
     this.HasKey(t => t.ID_MYPOCO); 
    } 
} 

它正在工作,这是没有什么大不了的,但想知道是否有任何理由为这种冗余? 任何如何,非常高兴与EF反向工程,我最喜欢的方式来映射数据库的四种方法。

回答

2

区别在于前者为compile时间,后者为run time

2

虽然在数据库生成中使用了[Key]这样的属性,但它们也用于验证等其他内容,因此也需要进行定义。