BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Entity Framework 4.0 Beta新特性

| 作者 Abel Avram 关注 9 他的粉丝 ,译者 王波 关注 0 他的粉丝 发布于 2009年5月21日. 估计阅读时间: 3 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

Entity Framework 4.0 Beta 1(又称EF V2)与.NET 4.0 Beta 1一起发布,包含了一系列的重要改进:自定义代码生成、延迟加载、N层支持、POCO支持、DDL生成、自定义查询等等。

EF4.0引入的重要改进如下:

  1. 自定义代码生成——集成到ADO.NET Entity Framework设计器和Visual Studio中的T4模版让开发者可控制代码生成
  2. 一些小特性让应用程序的开发更加简单——在模型中的复数形式和单数形式、延迟加载、更多的存储过程映射使得用Entity Framework建立应用程序更加容易
  3. 自定义查询——对已有的LINQ操作符、用LINQ识别更大量的模式集合、在LINQ中可编写模型来定义函数以及一系列的其他方法来创建和自定义查询
  4.  生成SQL语句的可读性改善——提高所生成的查询语句的可读性并优化TSQL性能可使得它更易于理解

以下是EF 4.0已有特性改进的详细说明:

N层开发

N层开发的一个重要方面是在服务器和客户端之间进行Entity状态交换。Diego Vega,ADO.NET Entity Framework编程经理,进一步详细描述到

实际上你需要的是:
  1. 从断开的图中推断出需要应用什么样的状态改变。
  2. 把那些改变传递给持久化层。

为了帮助程序员实现以上需求,EF 4.0包含下列API调用:

  • ObjectContext.ApplyOriginalValues
  • ObjectStateManager.ChangeObjectState
  • ObjectStateManager.ChangeRelationshipsState

除了底层的API以外,EF还包含自跟踪实体

自跟踪实体知道如何做自身的修改跟踪,而不管那些修改是在那一层发生的。作为一位架构师,自跟踪实体介于DTO和DataSet之间,包含了两者的长处。

ADO.NET小组会提供T4模版(没有包含在Beta中)来生成ObjectContext的类和扩展方法。

模型优先

Visual Studio 2010可以生成DDL并创建数据库来存储实体数据模型。开发人员可完全控制整个流程来自定义DDL、选择所需的数据库或者最终映射过程。

延迟加载

在EF 4.0中,关于实体的延迟加载可以通过设置ContextOptions.DeferredLoadingEnabled属性为true来实现。延迟加载能够同代码生成的实体以及POCO一起工作。默认情况下延迟加载是关闭的,但这个属性可以自定义修改。

POCO支持

在.NET 3.5中,EF对象需要继承EntityObject或实现以下的一个接口: IEntityWithKey、IEntityWithChangeTracker和IEntityWithRelationships。那会引入领域模型对持久层的高度关注。所有这些约束在EF 4.0中都被移除,并允许完全透明的持久性。

查看英文原文:What’s New in Entity Framework 4.0 Beta?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Bug Report by wei raymond

1) "作为一位架构师,自跟踪实体介于DTO和DataSet之间,包含了两者的长处。"
architecture != architect。
2) 关于实体的延迟加载"
related entities是相对于primary entities而言,应该译为“相关实体”。
3) "那会引入领域模型对持久层的高度关注。”
那会造成(领域模型)对持久层的依赖,从而污染了领域模型。

另外,将“断开的图”译为“非连接的对象图”可能较易于理解:)

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT