写点什么

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

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

关注

评论

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

C++|TCP客户端中发送文件

中国好公民st

c++ TCP通信 7月月更

百问百答第45期:应用性能探针监测原理-node JS 探针

博睿数据

自动化 博睿数据 性能检测 百问百答 智能运维AIOps

小红书自研KV存储架构如何实现万亿量级存储与跨云多活

小红书技术REDtech

存储 分布式KV 跨云多活

谈谈对Flink框架中容错机制及状态的一致性的理解

百思不得小赵

flink 容错机制 状态 7月月更

第五届 Polkadot Hackathon 创业大赛全程回顾,获胜项目揭秘!

One Block Community

区块链 科技

7 大主题、9 位技术大咖!龙蜥大讲堂7月硬核直播预告抢先看,今天见

OpenAnolis小助手

云原生 技术干货 龙蜥大讲堂 7 月预告 精美周边

程序员内卷和保持行业竞争力

沃德

程序员 7月月更

OpenHarmony应用开发之Navigation组件详解

坚果

HarmonyOS OpenHarmony 7月月更

如何让全彩LED显示屏更加节能环保

Dylan

LED LED显示屏

基于OpenHarmony的智能金属探测器

OpenHarmony开发者

OpenHarmony

spark调优(一):从hql转向代码

怀瑾握瑜的嘉与嘉

spark 7月月更

Web3基金会「Grant计划」赋能开发者,盘点四大成功项目

One Block Community

区块链+

IPv6与IPv4的区别 网信办等三部推进IPv6规模部署

郑州埃文科技

ipv6 ipv4 IP地址

NFT 交易市场主要使用 ETH 本位进行交易的局面是如何形成的?

NFT Research

区块链 NFT

ACID事务理论

源字节1号

软件开发

激动人心!2022开放原子全球开源峰会报名火热开启!

kk-OSC

开源 开发原子全球开源峰会 开源峰会

超高效!Swagger-Yapi的秘密

百度Geek说

后端 swagger

《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动

易观分析

银行用户

手把手带你入门Apache伪静态的配置

迷彩

Apache SEO伪静态 7月月更

不要再说微服务可以解决一切问题了!

博文视点Broadview

居家办公那些事|社区征文

CrazyGeek1996

居家办公 社区征文 7月月更

龙蜥社区第九次运营委员会会议顺利召开

OpenAnolis小助手

阿里云 开源 龙蜥社区 运营委员会 运营代表

Spring Cloud源码分析之Eureka篇第二章:注册中心启动类上的注解EnableEurekaServer

程序员欣宸

Java spring SpringCloud 7月月更

什么叫做信息安全?包含哪些内容?与网络安全有什么区别?

行云管家

网络安全 信息安全 数据安全

【Python技能树共建】python urllib 模块

梦想橡皮擦

Python 7月月更

leetcode 10. Regular Expression Matching 正则表达式匹配 (困难)

okokabcd

LeetCode 动态规划 数据结构与算法

《信息系统项目管理师》备考笔记---信息化知识

IT蜗壳-Tango

软考 7月月更 信息系统项目管理师

【云资源】云资源安全管理用什么软件好?为什么?

行云管家

云计算 安全管理 云资源

如何将 DevSecOps 引入企业?

SEAL安全

DevOps DevSecOps DevSecOps和敏捷

购买小间距LED显示屏的三个建议

Dylan

LED显示屏

分类TAB商品流多目标排序模型的演进

得物技术

算法 得物

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