Entity framework 4 在EF4中使用POCO时,最好的方法是什么?

Entity framework 4 在EF4中使用POCO时,最好的方法是什么?,entity-framework-4,implementation,poco,Entity Framework 4,Implementation,Poco,我已经阅读了使用实体框架实现POCO的3种方法,即 创建edmx模型并关闭代码生成,以便该模型不会为您创建沉重的实体。然后,您将创建必须遵循某些限制的POCO类 您可以使用可以下载到VS 2010的 使用代码优先的方法编写POCO代码,并在代码中定义映射。做 这需要EF 4.0功能CTP 我个人打算选择第二种方法,因为它更快,但是我应该记住什么,因为它来自ObjectContext,我想它在某种程度上是耦合的?我知道第三种方法最具灵活性,但值得吗?请分享你对此的想法…谢谢 您为“POCO模板”提

我已经阅读了使用实体框架实现POCO的3种方法,即

  • 创建edmx模型并关闭代码生成,以便该模型不会为您创建沉重的实体。然后,您将创建必须遵循某些限制的POCO类
  • 您可以使用可以下载到VS 2010的
  • 使用代码优先的方法编写POCO代码,并在代码中定义映射。做 这需要EF 4.0功能CTP

  • 我个人打算选择第二种方法,因为它更快,但是我应该记住什么,因为它来自ObjectContext,我想它在某种程度上是耦合的?我知道第三种方法最具灵活性,但值得吗?请分享你对此的想法…谢谢

    您为“POCO模板”提供的链接已断开-但我想您的意思是:

    此模板可以(也应该)与您所述的选项1结合使用

    这就是我在当前应用程序中使用的内容:

    1-创建EDMX模型

    2-关闭代码gen

    3-使用POCO生成器生成POCO类


    POCO不是从任何东西派生出来的-它们是纯POCO。

    在设置模型/POCO类时,我发现这两个链接非常宝贵。和。如上所述,关闭edmx中的代码生成并通过Microsoft提供的两个T4模板创建派生ObjectContext类和Poco类是一个好主意(如果使用repository模式的话)


    如果您使用T4模板而不对其进行任何更改,那么您将获得一组Poco类,并在生成的代码中启用“使用Fixup的更改跟踪代理”选项。

    如果我无法控制主机上安装的内容,是否可以在共享主机环境中使用CTP?我认为这是很重要的。你认为第三种选择是什么?值得吗?另外,生成的poco类上下文来自
    ObjectContext
    ,您认为这是一个问题还是一个缺点?我没有先使用代码,因此无法对其进行评论。就我个人而言,我更喜欢看模型(EDMX)。POCO类不是从ObjectContext派生的。这只发生在您使用默认代码生成时-它们不是POCO的。@Misnomer:首先,您不需要使用派生上下文。您可以直接使用ObjectContext。即使使用CTP,您也将拥有从DbContext派生的类,所以我看不出有任何缺点。如果不想将这些类型公开给上层,请检查工作单元和存储库模式,或者在派生的ObjectContext上定义接口,并使用任何IoC容器注入实现。