As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




已关闭8年。




我想知道使用EF4 Code-First方法的利弊。我们是否可以复制EF4生成的类提供的所有功能,例如延迟加载,加载相关实体等?

谢谢

最佳答案

优点

  • 轻量级实体类或基于POCO。
  • 由于您自己编写实体类而不是依靠EF来生成它们,因此可以更好地控制实体类。这意味着您不必定义部分类即可进行数据注释。
  • 选项,无需在任何地方指定映射。约定接管配置。
  • DbContext遵循存储库模式。
  • 延迟加载,相关实体加载均由您负责。例如,Post模型可以在POCO中声明Author模型,而EF Code首先会自动映射此关系。再次使用约定使我们如此富有成效。
  • 非常适合未开发的应用程序。
  • ASP.NET MVC View 生成效果很好。
  • ModelBinder正常运行。

  • 缺点
  • 不支持像Fluent nHibernate中那样自定义数据库映射约定的API。
  • 很难映射到现有数据库。(在发行版本中可能会更改)。

  • 有关示例代码以及使用 EF 4.0代码优先映射到现有数据库的信息,请参阅此博客文章。
    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/

    10-01 07:10
    查看更多