写点什么

Entity Framework 4.0 Beta 新特性

  • 2009-05-20
  • 本文字数:1007 字

    阅读完需:约 3 分钟

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?

2009-05-20 21:143404
用户头像

发布了 87 篇内容, 共 24.0 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

《OpenHarmony 共建地图 2.0》在2023开放原子全球开源峰会发布

新消费日报

YRCloudFile 分布式存储加速基因测序 解锁生命密码

焱融科技

不一样的ECS U实例

六月的雨在InfoQ

MySQL nginx 阿里云ECS U 6 月 优质更文活动

ThreadLocal变量存储为什么不用Map

M

原创 ThreadLocal Java'

平凯星辰重磅支持 2023 开放原子全球开源峰会,开源数据库分论坛成功召开

编程猫

线性代数(一)矩阵和方程组

Studying_swz

6 月 优质更文活动

三维人脸建模和驱动技术,让数字人快速“活”起来

华为云开发者联盟

人工智能 华为云 数字人 华为云开发者联盟 企业号 6 月 PK 榜

ChatGPT与Web的完美结合:创造一加一大于二的化学反应

加入高科技仿生人

Web 低代码 ChatGPT

魏可伟受邀参加 2023 开放原子全球开源峰会

KaiwuDB

KaiwuDB 2023开放原子全球开源峰会

更好的保护你的数据KEY

坚果

6 月 优质更文活动

WiFi7来了,WiFi6会下岗吗?

白洞计划

wifi

C语言编程—内存管理

芯动大师

C语言 内存管理 6 月 优质更文活动

证券行业异构系统众多,微服务和网格如何全都要

网易数帆

微服务 云原生 服务网格 证券行业

STM32单片机上RGB数据转为JPEG格式办法

DS小龙哥

6 月 优质更文活动

直播预告 | 博睿学院:AIOps利器-混沌工程实践

博睿数据

可观测性 AIOPS 智能运维 博睿数据 博睿学院

一小时快速拆解 Milvus 2.2.9

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 zillizcloud

VMware虚拟机和主机传输文件

Geek_7ubdnf

TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持

PingCAP

数据库 开源 TiDB

不断进化!奇点云助豫园股份构建集团统一战略的数据平台

奇点云

数字化转型 奇点云 豫园股份

软件测试/测试开发丨Python 常用数据结构-列表

测试人

Python 程序员 软件测试 自动化测试

AIGC繁花,绽放在精耕的算力土壤之上

脑极体

AI 服务器

WiFi7来了,WiFi6会下岗吗?

脑极体

wifi

Ubuntu安装Python

Geek_7ubdnf

SpringBoot进阶学习?看这篇就够了!

程序员小毕

程序员 程序人生 架构师 springboot java面试

Django笔记四十二之model使用validator验证器

Hunter熊

Python django model validator

linux常见命令总结

Studying_swz

6 月 优质更文活动

5款超级好用的开发效率工具,建议收藏!

引迈信息

程序员 前端 低代码 开发效率

ICASSP 2023 | 深度窄带网络消除实时语音通信中的干扰音

阿里技术

实时语音 音频处理

为数据弹性而生,阿里云云原生存储再提速

阿里巴巴云原生

阿里云 Serverless 云原生 Fluid EFC

软件测试/测试开发丨Python 常用数据结构-元组

测试人

Python 程序员 软件测试 自动化测试 测试开发

Kubernetes关键组件解析

穿过生命散发芬芳

k8s 6 月 优质更文活动

Entity Framework 4.0 Beta新特性_.NET_Abel Avram_InfoQ精选文章