时间:2010-07-25 17:18:51

标签: entity-framework entity-framework-4 code-first

3 个答案:

答案 0 :(得分:7)

赞成

  1. 轻量级实体类或基于POCO。
  2. 对实体类进行更多控制,因为您自己编写代码而不是依赖EF来生成实体类。这意味着您不必定义部分类来执行数据注释。
  3. 永远不必在任何地方指定映射的选项。公约接管配置。
  4. DbContext遵循存储库模式。
  5. 延迟加载,相关实体加载所有照顾你。例如,Post模型可以在POCO中声明Author模型,EF Code会首先自动映射此关系。再次使用惯例使我们如此富有成效。
  6. 非常适合绿地应用。
  7. ASP.NET MVC视图生成效果很好。
  8. ModelBinder正常工作。
  9. 缺点

    1. 没有API支持自定义数据库映射约定,如Fluent nHibernate。
    2. 难以映射到现有数据库。(这可能会在发布版本中发生变化)。
    3. 有关示例代码和使用 EF 4.0 Code First 映射到现有数据库,请参阅此博客文章。 http://theminimalistdeveloper.com/2010/07/28/how-to-map-pocos-to-existing-databases-in-entity-framework-4-0-code-first-and-asp-net-mvc-2/

答案 1 :(得分:1)

答案 2 :(得分:0)

由于您专门询问了延迟加载,因此这里有一个显示Working with Lazy Loading with Entity Framework Code First的文章,默认情况下启用它。要专门回答你问题的这一部分,对于Code First,你仍然可以获得延迟加载的好处,事实上,正如帖子所示,你对这个功能有非常精细的控制。