Entity framework 实体框架4代码优先优缺点

Entity framework 实体框架4代码优先优缺点,entity-framework,entity-framework-4,code-first,Entity Framework,Entity Framework 4,Code First,我想知道使用EF4代码优先方法的优缺点。我们是否可以复制EF4生成的类提供的所有特性,如延迟加载、加载相关实体等 谢谢缺点: 由于没有EDMX,因此无法预生成视图 尚未获得上线许可。希望这种情况很快会改变 专业人士 因为没有固定的模式,所以可以在运行时动态构建一个模式 大多数其他事情都是完全相同的(延迟加载、显式加载等)。还有一些是个人偏好的问题(API)。 轻量级实体类或基于POCO的实体类 由于您自己编写实体类,而不是依赖EF生成实体类,因此可以更好地控制实体类。这意味着您不必定义分

我想知道使用EF4代码优先方法的优缺点。我们是否可以复制EF4生成的类提供的所有特性,如延迟加载、加载相关实体等

谢谢

缺点:

  • 由于没有EDMX,因此无法预生成视图
  • 尚未获得上线许可。希望这种情况很快会改变
专业人士

  • 因为没有固定的模式,所以可以在运行时动态构建一个模式
大多数其他事情都是完全相同的(延迟加载、显式加载等)。还有一些是个人偏好的问题(API)。

  • 轻量级实体类或基于POCO的实体类
  • 由于您自己编写实体类,而不是依赖EF生成实体类,因此可以更好地控制实体类。这意味着您不必定义分部类来进行数据注释
  • 选项不必在任何位置指定映射。约定接管配置
  • DbContext遵循存储库模式
  • 惰性加载、相关实体加载都为您解决。例如,Post模型可以在POCO中声明作者模型,EF代码将首先自动映射此关系。再一次,使用惯例使我们变得如此富有成效
  • 适用于绿地应用
  • ASP.NET MVC视图生成非常有效
  • ModelBinder按正常方式工作
  • 缺点

  • 不支持像Fluent nHibernate那样定制数据库映射约定的API
  • 映射到现有数据库有点困难。(这在发布版本中可能会更改)
  • 有关示例代码和使用EF 4.0代码映射到现有数据库的信息,请先查看此博客文章。

    因为您特别询问了延迟加载,这里有一个writeup显示,默认情况下它是在哪里启用的。为了明确回答您的这部分问题,是的,使用代码优先,您仍然可以获得延迟加载的好处,事实上,正如本文所示,您可以对该功能进行细粒度的控制。

    那么延迟加载、foregin键、存储过程等功能呢?@Craig“由于您没有EDMX,因此无法预生成视图”恐怕这不是真的。无论是否有edmx文件,都可以根据模型类生成视图。@比卡尔:EdmGen语法是什么?一位英孚首相告诉我,这在一年前是办不到的。。。还是你把MVC视图和EF视图搞混了?@Craig。对不起,我好像误解了你的意思。我指的是MVC视图,而不是EF视图。对EF视图不太确定。@Bikal:我不知道怎么可能。如果只使用代码,则在运行时之前不会有EF模型,因此在此之前不可能生成视图。这不是真的!因为T4模板可以利用EF designer来支持EF代码!