ADO.NET:使用实体框架灵活地为数据建模

本文将介绍以下内容:

实体框架背后的原理

实体数据模型

查询、映射和 n 层开发

本文使用了以下技术:

ADO.NET、LINQ、实体框架

框架概念最初是在 2006 年作为 ADO.NET vNext 引入的,现在它已准备好要在即将发布的 Visual Studio 2008 SP1 中大显身手。在历经多年对类似产品的多次失败尝试后,Microsoft 随 Visual Studio 2008 发布了部分适合于对象关系映射 (ORM) 空间的下列两种技术:LINQ to SQL 和 ADO.NET Entity Framework。随着市场逐渐开始采用这些技术,开发人员希望了解我们目前的状况以及 Microsoft 未来的发展方向。他们还希望了解这些技术开发背后的原理、实体框架不同于市场上其他 ORM 技术的原因以及 Microsoft 对这些技术的投资趋向。

在 Visual Studio 2008 发布伊始,就出现了大量有关 LINQ to SQL 的文章以及介绍应采用哪种技术的文章。在此我将着重介绍实体框架,并深入探讨在开发过程中应该如何进行选择以及为何如此选择。

Microsoft 实体数据模型 (EDM) 基于 Peter Chen 博士的实体关系 (ER) 模型,实际上它是 ADO.NET Entity Framework 背后的驱动力。EDM 也是区分实体框架与市场上其他 ORM 型技术的最明显特征。EDM 构建在 ER 模型之上,它将模型的抽象级别提升到高于逻辑模型的级别,但同时仍保留实体和关系的概念。

为什么需要建立另外一种数据模型?

那么为什么需要建立另外一种模型呢?随着公司数据处理量的增加,理顺数据关系并基于这些数据来开发应用程序变得非常困难。数据库架构的设计需要考虑存储问题(如数据完整性、性能和管理),有时候这不是很容易理解。这些架构还经常与应用程序的结构有冲突,使开发和维护工作变得更加复杂。

我们经常会遇到数据结构与所构建的应用程序被分割开的自定义解决方案。遗憾地是,对每个应用程序而言,自定义解决方案的数量、各种各样的方法以及建模数据所需的步骤都各不相同,导致问题不断产生。整个行业都希望能有一种方法来针对应用程序级的域模型进行定义和开发,以便能够与逻辑模型的存储清晰地分隔开。因此引入了实体框架。

EDM(请参阅图 1 中描述的示例)允许以组织看待和使用数据的方式(不是数据的存储方式)来定义域模型。开发 EDM 还有一个主要目标,那就是在 Microsoft 内成为用于开发人员和服务器技术套件的核心数据模型。

图 1 某个博客数据库的示例实体数据模型

时间: 2024-11-03 21:58:16

ADO.NET:使用实体框架灵活地为数据建模的相关文章

Rafy 领域实体框架 - 领域模型设计器(建模工具)设计方案

去年4月,我们为 Rafy 框架添加了领域模型设计器组件.时隔一年,谨以本文,简要说明该领域模型设计器的设计思想.   设计目标 Rafy 实体框架中以领域驱动设计作为指导思想.所以在开发时,以领域建模为首要任务.为此,我们为它开发了领域模型设计器.开发人员可以在设计器中,设计相应的领域模型,查看现有代码对应的领域模型. 我们为这个设计器制定了以下功能: 外部简单设计器:也就是设计器可以部署为一个可以独立运行的软件.该软件可以打开领域模型的设计图,方便团队中的非开发人员角色查看.同样,这个软件最

ADO.NET 实体框架概述

随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布.ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为"EntityClient"的新数据提供程序与概念模型交互. 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式

详解ASP.NET MVC 2中的新ADO.NET实体框架

.NET框架4.0的发行推出了许多优秀的增强功能,其中当首推ADO.NET实体框架.该框架已经克服了以前的许多错误,并提供了一组增强的 API,其中包括许多新的LINQ to SQL框架方面的改善.在本文中,我们将使用这些API的功能来创建一个通用版本的数据仓库. 一.实体框架概述 实体框架针对数据模型提供了一些更方便的操作方法.默认情况下,设计器可以生成一个描述数据库的模型. 尽管表格间的映射未必都是1:1的映射.每个表格使用一个ObjectSet加以描述,进而ObjectSet对象又提供了相

一起谈.NET技术,详解ASP.NET MVC 2中的新ADO.NET实体框架

.NET框架4.0的发行推出了许多优秀的增强功能,其中当首推ADO.NET实体框架.该框架已经克服了以前的许多错误,并提供了一组增强的API,其中包括许多新的LINQ to SQL框架方面的改善.在本文中,我们将使用这些API的功能来创建一个通用版本的数据仓库. 一.实体框架概述 实体框架针对数据模型提供了一些更方便的操作方法.默认情况下,设计器可以生成一个描述数据库的模型. 尽管表格间的映射未必都是1:1的映射.每个表格使用一个ObjectSet加以描述,进而ObjectSet对象又提供了相应

SOA数据访问:使用LINQ To SQL和实体框架实现灵活的数据访问

本文配套源码 本文使用以下技术: LINQ to SQL.ADO.NET实体框架和SOA 目录 创建数据访问层 持久化各个对象 跨服务边界跟踪更改 配置客户端 总结 迄今为止,Microsoft 已面向开发人员发布了两种旨在减少关系数据领域和面向对象的编程之间 的阻抗失谐的产品:LINQ to SQL 和 ADO.NET 实体框架.借助其中任何一种产品,您不必编写大部分探 测代码,即可实现对象持久性.但是,将这些对象关系映射 (ORM) 技术应用到面向服务的应用程序体系 结构为应用程序开发人员带

OData、实体框架和 Windows Azure 访问控制

在本文中,我将阐述使用实体框架(通过 Windows Communication Foundation (WCF) RESTful 服务公开 并用 Windows Azure 访问控制服务 (ACS) 保证安全),实施开放数据协议 (OData). 如同大多数开 发人员,我经常发现自己试图利用各种新方法综合利用多种技术,以便尽可能高效地完成项目,同时还要提供 一种灵活.易于维护的解决方案.这样做可能很困难,当项目需要快速安全地公开数据时尤其如此. 最近我需要为一个现有数据库和 Web 应用程序创

数据点:分层式体系结构中的实体框架

本专栏基于 ADO.NET EntityFramework 的预发布版本撰写而成.文中包含的所有信息均有可能发生变更. 目录 定义层 构建模型 工作原理 保持更改 删除和添加 总结 当 n 层体系结构的架构师评估任何新技术.模式或策略时,他们必须考虑新的谜团将如何与体系结构相融合.有了实体框架,集成将不再是问题.它可以集成到 n 层体系结构以及单层体系结构中. 在本月专栏中,我将介绍如何使实体框架能够适合于使用 Windows Communication Foundation (WCF).Win

Visual Studio-Visual Studio 2010中的实体框架4.0和WCF数据服务4.0

在诸多新改进之中,Visual Studio 2010 引入了用户期待已久的实体框架 4.0 和 WCF 数据服务 4.0(以前称为 ADO.NET 数据服务),这两项功能综合起来,简化了您建立数据模型.使用数据和生成数据的方式. 实体框架 4.0 (EF 4.0) 致力于启用和简化两种主要方案:以域为中心的应用程序开发和传统以数据为中心的"基于数据的窗体设计".它引入了诸如模型优先开发等功能(该功能允许您创建模型并为您生成自定义 T-SQL):对持久化透明的支持:外键:延迟加载以及实

福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!

距离"上次框架完整发布"已经过去了一年半了,应群中的朋友要求,决定在国庆放假之际,把最新的框架发布出来,并把帮助文档整理出来,这样可以方便大家快速上手.     发布内容 注意,本次发布,只包含 Rafy 框架中的领域实体框架及相关文档.不包含"界面自动生成"等其它组件. 安装新的发布包:<使用 NuGet 下载最新的 Rafy 框架及文档>. 网页版用户手册(实时更新):<http://zgynhqf.github.io/Rafy>. 老版