写点什么

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:143335
用户头像

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

关注

评论

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

多版本并发控制 MVCC

月明风清

【SSM】Spring系列——Spring概述、第一个Spring程序、容器接口和实现类

胖虎不秃头

spring ssm 9月月更

如何写成高性能的代码(一):巧用Canvas绘制电子表格

葡萄城技术团队

html 前端 canvas html2canvas 纯前端表格技术

云原生数据库前世今生

亚马逊云科技 (Amazon Web Services)

数据库 云原生

腾讯云Crane获国家级科技奖,助力企业降本增效节能减排

科技热闻

2022 DEMO CHINA创新中国峰会收官,5大专场创业者PK,投资人脱口秀别开生面

创业邦

OpenHarmony编译报错解决

坚果

OpenHarmony 9月月更

学习WEB前端去哪里?

小谷哥

【SSM】Mybatis系列——分页、使用注解开发、mybatis执行流程

胖虎不秃头

mybatis SSM框架 9月月更

云原生数据库 Amazon DynamoDB 十年创新回顾

亚马逊云科技 (Amazon Web Services)

数据库 云原生

深度学习+大规模计算+大数据,谁才是未来的算力之王

Finovy Cloud

人工智能 云渲染

select多路选择

飞翔

Go

MySQL数据库之索引

Java快了!

:MySQL 数据库

Java 设置 Word 中的段落缩进方式

Geek_249eec

Java word 段落缩进

主流开源APM:Zipkin/Pinpoint/SkyWalking全面对比

穿过生命散发芬芳

APM 9月月更

官宣 | 极狐(GitLab) 公司成立一年完成 4 轮融资,夯实中国开源市场信心

极狐GitLab

开源 DevOps 融资 自主可控 极狐GitLab

C站专家圈分享-低代码构建WebAPI的原理与体验

葡萄城技术团队

架构 低代码 开发 WebApi 前后端

降本增效的利器——组件化开发

力软低代码开发平台

直播预告 | 在 CurveBS 上部署跨机 PolarDB for PostgreSQL 集群

阿里云数据库开源

数据库 postgresql 阿里云 开源 polarDB

资深专家亮相华为云快成长直播间CDN专场,助力企业体验升级!

神奇视野

如何防范钓鱼网站诈骗?

郑州埃文科技

钓鱼网站 钓鱼诈骗 网络诈骗防范

前端培训与自学的区别

小谷哥

什么样的人适合参加前端培训呢?

小谷哥

在上海想学WEB前端课程如何选择

小谷哥

尚硅谷ShardingSphere新版视频教程发布

小谷哥

【SSM】Mybatis系列——多对一和一对多的处理、动态SQL

胖虎不秃头

mybatis SSM框架 9月月更

阿里云云原生实时数仓升级发布,助力企业快速构建一站式实时数仓

阿里云大数据AI技术

大数据 数仓

TiDB Hackathon 2022丨总奖金池超 35 万!邀你唤醒代码世界的更多可能性!

TiDB 社区干货传送门

黑客马拉松

MediaTek MT7915 Module 2T2R DR7915/Wallys Wi-Fi 6 Wave 1+ chipset

wallys-wifi6

MT7975 MT7915

数字孪生智慧校园三维可视化管理系统解决方案

数据可视化平台

智慧校园 智慧学校 智慧校园解决方案 智慧校园管理系统 校园三维可视化

一文读懂,硬核 Apache DolphinScheduler3.0 源码解析

白鲸开源

源码阅读 Apache DolphinScheduler 工作流编排 大数据 开源 大数据调度

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