AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

安全419《高级威胁检测与响应解决方案》系列访谈——未来智安(XDR SEC)篇

未来智安XDR SEC

网络安全 威胁检测 XDR扩展威胁检测响应

每日算法刷题Day13-在O(1)时间删除链表结点、合并两个排序的链表、把字符串转换成整数

timerring

算法题 9月月更

跟着卷卷龙一起学Camera--Demosaic

卷卷龙

ISP 9月月更

讲讲 SaaS 平台的多租户怎么设计

产品海豚湾

产品经理 多租户 产品设计与思考 SaaS平台 9月月更

[SSM]前后台协议联调②

十八岁讨厌编程

Java 后端开发 9月月更

ShareSDK 开发过程中常见问题

MobTech袤博科技

ios android sdk

轻量化的灰度发布实践技术方案

Speedoooo

灰度发布 ab测试 轻量化

PC端小程序引擎,或许不就未来能解决桌面应用兼容性

Speedoooo

小程序 桌面开发 桌面端 桌面应用

[Javaweb]JSON

十八岁讨厌编程

javaWeb 后端开发 9月月更

ESP32-C3入门教程 基础篇(一、ADC采样)

矜辰所致

ESP32-C3 9月月更 ADC采样

计算机网络——物理层设备

StackOverflow

编程 计算机网络 9月月更

常见监控分类概述

穿过生命散发芬芳

监控 9月月更

史上最详细Ajax学习笔记

楠羽

笔记 ajax数据 9月月更

J-Tech & 开源之夏|什么是比快更快的向量搜索

Jina AI

搜索引擎 开源 开源之夏

Drug X跨越鸿沟:一个生物科学家的新药研发跋涉记

脑极体

C++学习---_IO_lock_t的源码学习

桑榆

c++ 源码阅读 9月月更

互联网公司员工职级、研发效能度量、OKR与绩效考核

laofo

DevOps cicd 研发效能 持续交付

什么是混合云?与公有云、私有云有啥区别?

wljslmz

云计算 公有云 私有云 混合云 9月月更

【字符串函数内功修炼】strncpy + strncat + strncmp(二)

Albert Edison

C语言 9月月更 strncpy strncat strncmp

python小知识-类全知道

AIWeker

Python python小知识 9月月更

FinOps能力成熟度模型启动,灵雀云助力云原生降本增效标准制定

York

云计算 云原生 能力成熟度模型 降本增效 FinOps

前端食堂技术周刊第 53 期:React Router 6.4、VS Code August 2022、2022 Google 谷歌开发者大会、Meta 开源 MemLab、Vue.js 技术内幕

童欧巴

Vue vscode React

OceanBase 数据库内核实战赛「推荐官」招募令发布,让身边的优秀选手C位出道!

OceanBase 数据库

[SSM]前后台协议联调①

十八岁讨厌编程

Java 后端开发 9月月更

OceanBase本周活动|从0到1数据库内核实战教程;对话ACE第五期;Meetup广州站

OceanBase 数据库

JS-内置对象API-Array(数组)-(一)-改变原数组的API-篇

Sam9029

JavaScript 前端 9月月更

ESP32-C3入门教程 基础篇(二、GPIO中断、按键驱动测试)

矜辰所致

GPIO ESP32-C3 按键驱动 9月月更

云渲染和传统渲染农场有什么区别?

Renderbus瑞云渲染农场

云渲染 云渲染农场 渲染农场 Renderbus瑞云渲染

Flink Collector Output 接口源码解析

JasonLee实时计算

flink 源码

Flink计算框架概述

阿泽🧸

9月月更 Filnk

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