写点什么

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

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

关注

评论

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

YashanDB 知识库|UNDO 表空间一直在涨?查原因 + 给方案,一文说明白

数据库砖家

数据库

“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新

ModelWhale

大模型

PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析

sysin

Cyber Triage 3.14 for Windows - 面向事件响应的数字取证软件

sysin

YashanDB 知识库|yasql 报 YASQL-00021:单行字符超 4000.如何绕过限制?

数据库砖家

数据库

怀进鹏强调高效优化学科布局和专业建设,多所985成立“AI+”新学院

ModelWhale

华为云中间件助力AI应用智能进化与创新突破

华为云开发者联盟

华为云

YashanDB 知识库|YCP 单机部署如何离线升级?一文详解 -rpc 升级流程

数据库砖家

数据库

YashanDB|用 yasldr 批量导入时报内存不足?一文搞懂 bulkload 内存分配逻辑

数据库砖家

数据库

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS NVMe 驱动特殊定制版 (集成驱动版)

sysin

esxi

YashanDB 知识库|Oracle 里的大整数插入正常,换到崖山却报错?问题可能出在字段类型上

数据库砖家

数据库

DNS DDoS攻击:网络世界中的“洪水猛兽”

防火墙后吃泡面

CST如何在三维里截取部分区域进行仿真

思茂信息

cst CST软件 CST Studio Suite

网易游戏 Flink 云原生实践

Apache Flink

大数据 flink 云原生

YashanDB 知识库|MySQL 的 GROUP BY 语句在崖山报错?问题出在这个标准!

数据库砖家

数据库

图片导航组件 | 纯血鸿蒙组件库AUI

华哥的全栈次元舱

HarmonyOS 开发语言 纯血鸿蒙 ArkUI / eTS 鸿蒙组件库AUI

排行榜的5种实现方案!

不在线第一只蜗牛

架构 开发

HyperWorks汽车B-柱网格变形

智造软件

CAE Hypermesh hyperworks

YashanDB|如何优化跑批性能?这些参数配置值得关注

数据库砖家

数据库

YashanDB 知识库|YCP 高可用离线升级指南(以 23.2.4.100 升级至 23.2.11.100 为例)

数据库砖家

数据库

企业如何利用SD-WAN优化多云架构网络性能

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN厂商 sd-wan专线

2025低代码开发平台大揭秘:国内十大低代码厂商全面解析

优秀

低代码开发平台

JEB Pro v5.29 (macOS, Linux, Windows) - 逆向工程平台

sysin

JEB

YashanDB 共享集群实测报告:性能、稳定性、架构三重验证,细节见真章

数据库砖家

数据库

酷睿、锐炫加持!英特尔点亮智慧零售新场景

E科讯

如何选择适合企业的高效财税自动化软件

Techinsight

财税

教育部加快推进教育数字化,2024年来国家级人工智能教育政策合集

ModelWhale

MCP 如何构建企业级数据分析 Agent?

阿里巴巴云原生

阿里云 云原生 函数计算

淘宝天猫商品详情API接口(附代码示例)

tbapi

淘宝商品详情接口 淘宝API 天猫商品详情接口

数字化与信息化的关系

优秀

数字化 信息化

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