博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO.NET 实体框架概述
阅读量:6238 次
发布时间:2019-06-22

本文共 1351 字,大约阅读时间需要 4 分钟。

随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。

实体框架组件

实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久性。当与 LINQ to Entities结合使用时,由于实体框架从概念模型中生成强类型化类,还有助于降低编译时错误的数量。实体框架生成开发人员能够依据其编写代码的概念模型。使用名为“EntityClient”的新数据提供程序和名为“实体 SQL”的新语言(类似于 T-SQL)可以直接与该模型交互。EntityClient 具有与熟悉的 ADO.NET 对象类似的模型,使用 EntityConnection 和 EntityCommand 对象返回 DbDataReader。开发人员的另一种方法是通过具有实体 SQL 的 ObjectQuery 对象或 LINQ to Entities 来使用对象服务。对象服务使开发人员可以利用概念模型的生成类,这些生成类提供了强类型化对象和持久性等特性。

 

这些数据访问技术使开发人员可以与 EDM 的概念实体交互。EDM 的各个层以 XML 文件形式存在;

实体数据模型

实体框架的核心位于其模型中。实体框架支持表示数据库中的关系架构的逻辑存储模型。关系数据库通常存储数据的方式与应用程序使用数据的方式不同。通常,这会迫使开发人员按照数据库包含数据的结构检索数据。因此,开发人员通常将数据加载到更适合处理业务规则的业务实体中。在本示例中,以逻辑模型表示关系数据库的构架,业务实体表示概念模型。实体框架使用映射层在模型之间搭建了桥梁。因此,实体框架的模型中有三个处于活动状态的层:

  • 概念层
  • 映射层
  • 逻辑层

这三层允许将数据从关系数据库映射到更加面向对象的业务模型。实体框架提供了使用 XML 文件定义这些层的方法。它还基于概念模型的架构生成了一系列类。可以针对这些类进行编程以直接与数据交互。这提供了抽象级别,因此开发人员可以针对概念模型而不是关系模型进行编程。实体框架可将针对概念模型编码的所有命令映射到逻辑模型中。

概念模型是使用概念架构定义语言 (CSDL) 在 XML 文件中定义的。CSDL 定义应用程序的业务层所知道的实体和关系。逻辑模型(表示数据库架构)是使用存储架构定义语言 (SSDL) 在 XML 文件中定义的。例如,您可能在概念模型中有一个实体,该实体实际上从数据库的多个表中派生其数据。概念模型和逻辑模型可按一对一的关系来关联实体。然而,EDM 的功能是它不必以一对一的方式链接实体。映射层(是使用映射架构语言 (MSL) 定义的)实现其他两层彼此之间的映射。此映射使开发人员可以针对概念模型编写代码,并将这些指令映射到逻辑模型。

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

转载地址:http://amkia.baihongyu.com/

你可能感兴趣的文章
cocos2dx 实现软渲染引擎 soft rendering engine
查看>>
移动H5前端性能优化指南
查看>>
报表制作工具中自定义函数概述
查看>>
Sqoop2从Mysql导入Hdfs (hadoop-2.7.1,Sqoop 1.99.6)
查看>>
浮点数指令
查看>>
无法删除文件名称过长的文件
查看>>
手机端页面流畅滚动
查看>>
CentOS下 CPU 负载观察和性能监测
查看>>
Magento产品页面包屑导航(Breadcrumb)修正
查看>>
struts2 多文件上传
查看>>
在样式中控制列表长度
查看>>
项目经理之项目经理应该做什么(转)
查看>>
Git 分支 - 分支的衍合
查看>>
ubuntu在vmware下的安装与配置
查看>>
codewars050: 丢失的数组的长度
查看>>
JavaScript获取元素在浏览器画布中的绝对位置【转】
查看>>
程序员小说《OutOfMemory》第三次更新的部分
查看>>
interface和abstract interface
查看>>
Android之rild进程启动源码分析
查看>>
TextView
查看>>