代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

我对POCO的+实体框架v4的理解正确吗?

  •  2
  • Pure.Krome  · 技术社区  · 14 年前

    有人能确认/纠正我对实体框架v4使用POCO的理解吗?

    如果我想在EF4上下文中使用POCO,我还需要在designer/.edmx上放置/创建实体吗?使用POCO的想法是不是让我不需要使用那些“重”实体?或者我仍然需要这些实体,只是在其他地方我实际上把数据从实体中移到了我的POCO中。。哪一个是被任何消费代码使用的?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Ladislav Mrnka    14 年前

    如果您想使用POCO,有三种选择:

    • 每个类必须与模型中的实体具有相同的名称
    • 每个类必须具有与模型中的名称完全相同的所有属性(包括导航属性)。除导航集合外的所有属性都必须具有getter和setter(至少受保护)。
    • 导航集合的属性必须至少是ICollection<T>类型,并且您必须初始化它们(这就是为什么它们不需要setter的原因)。对于跟踪EF初始化集合的代理,情况并非如此。

    第三种选择是使用代码优先的方法,即编写poco代码并在代码中定义映射。要做到这一点,你需要 EF 4.0 Feature CTP . 我认为这是在没有EDMX模型的情况下使用POCOs的唯一方法。但目前它只是CTP,有很多局限性。