【问题标题】:Using EF 5 reverse engineer code first, why [Key] plus HasKey()?首先使用 EF 5 逆向工程代码,为什么 [Key] 加上 HasKey()?
【发布时间】:2012-10-17 12:55:36
【问题描述】:

我首先使用 EF 逆向工程师 代码来获取我的 POCO 和映射表。 我得到以下异常:EntityType 'MYPOCO' 没有定义键。定义此 EntityType 的键。 我在 pk 字段上添加了 [Key] 属性,效果很好。但是:

为什么要在 poco PK 属性上设置 [Key] 属性

[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 逆向工程非常满意,这是我最喜欢的四种映射 DB 的方式。

【问题讨论】:

    标签: c# entity-framework-5


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      虽然 [Key] 等属性用于 DB 生成,但它们也用于验证等其他用途,因此也需要定义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        相关资源
        最近更新 更多