EF架构~了解一下,ADO.NET Entity Framework

回到目录

以下文章部分来自百度百科

背景

长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去

entityframework

学习 SQL 指令,因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应 (Object-Relational Mapping) 的技术就是由此而生,像Hibernate或NHibernate都是这个技术下的产物,而微软虽然有了ADO.NET这 个数据访问的利器,但却没有像NHibernate这样的对象对应工具,因此微软在.NET Framework 2.0发展时期,就提出了一个ObjectSpace的概念,ObjectSpace可以让应用程序可以用完全对象化的方法连接与访问数据库,其技术概念 与NHibernate相当类似,然而ObjectSpace工程相当大,在.NET Framework 2.0完成时仍无法全部完成,因此微软将ObjectSpace纳入下一版本的.NET Framework中,并且再加上一个设计的工具(Designer),构成了现在的 ADO.NET Entity Framework。

Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以 及支持 Entity Framework 的数据提供者 (provider),让数据访问的工作得以顺利与完整的进行。

(1) 概念层:负责向上的对象与属性显露与访问。

(2) 对应层:将上方的概念层和底下的储存层的数据结构对应在一起。

(3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体,和 Provider 一起,负责实际对数据库的访问和 SQL 的产生。

 

实例:

微软自己的entity framework工具主要为linq to sql和Ado.net entity data Model等

应用:

事件上,微软再推出MVC架构方案之后,使得无论是linq to sql还是Ado.net entity data Model这两个数据持久化工具发挥的作用越来越明显.他们实现了数据库的面向对象化,把数据表中的字段看成是对象的属性,把表之间的关系看成是对象之间的关系.

回到目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CM3计算板装系统

1、CM3计算板简介 把树莓派搬到自己的产品中,一种和树莓派基础功能一模一样的板卡,并对相关管脚扩展,完成产品级的功能设计和硬件设计。板卡如下图所示,运行的是Linux操作系统。 2、下载镜像 CM3有多种内存搭配,常见…

关于 CKEditor 3.6以后不兼容ie6的问题解决方案

2019独角兽企业重金招聘Python工程师标准>>> skins\模版名称\editor.css 在第一个.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{.....}里面添加 _overflow:hidden;即可. 转载于:https://my.os…

USB/UART 串口转LoRa无线传输调试工具 评估套件

一、LoRa无线传输的特点 LoRa无线通信采用扩频调制通信方式,抗干扰强、灵敏度高,能够在较低功耗的情况下传输更远的距离。采用ISM免授权频段(470MHZ-510MHZ),用于无线抄表、工业监控、农业管理、智慧园区、智慧楼宇等…

新手指导:51CTO微博小技巧

您是初次接触微博吗?您是不是不了解微博,不知道怎样才能玩转微博?没关系,小管家这就教您几招,让您通过140字轻松的将看到的、听到的、想到的事情随时随地分享给朋友。 一、怎样拥有微博二、新手快速使用微博攻略 2…

Linux给GCC编译的应用程序创建服务

一、创建服务文件 linux 服务文件的位置在: /etc/systemd/system ,进入该目录。首先创建一个服务文件,名字可以按照xxx.service 的格式命名,例如我的噪声处理服务命名: noiserun.service。创建文件需要sudo权限:sudo …

IOS贝塞尔曲线圆形进度条和加载动画

做项目让做一个加载动画,一个圈圈在转中间加一个图片,网上有好多demo,这里我也自己写了一个,中间的图片可加可不加。其中主要用到贝塞尔曲线。UIBezierPath是对CGContextRef的进一步封装,不多说直接上代码&#xff1a; #import <UIKit/UIKit.h>interface CircleLoader : …

CM3计算板EC20模组拨号上网

1、安装 ppp 安装ppp&#xff1a;sudo apt-get install ppp 2、配置路由 查看路由和网卡 ifconfig ; route -n增加路由设备&#xff1a; sudo route add default dev ppp0 3、执行拨号脚本 进入linux-ppp-scripts 文件下&#xff1a;sudo ./quectel-pppd.sh /dev/ttyUSB3 …

CM3计算板I/O编程

1、CM3计算板的IO资源 CM3支持的I/O管脚数为54个&#xff0c;每个管脚包括一个或多个复用功能&#xff0c;分别位于ALT0~ALT5&#xff0c;如下表&#xff1a; 2、设备树启用IO外设的方式 通过在/boot/config.txt 文件中描述IO行为&#xff0c;可以在系统启动时&#xff0c;初…

python类型转换、数值操作

From: http://canofy.iteye.com/blog/298263 python类型转换 Java代码 函数 描述 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]…

Bloomfilter 的应用场景

Bloomfilter 一般用于检测某元素是否在集合中存在&#xff0c;它的目标是解决在大数据量情况的元素判定。它的优点是它提供的数据结构具有非常高的时间查询和空间存储效率&#xff0c;缺点是可能造成误判&#xff0c;就是说&#xff0c;它判定某元素在集合中&#xff0c;但是其…

运放搭建的窗口电压比较器电路

1、窗口比较器 设输入电压为Vin&#xff0c;输入范围为&#xff08;-V1~V2&#xff09;&#xff0c;要求设计电路识别输入是否在给定的电压区间&#xff08;Vd~Vt&#xff09;。 可以设计为一个电压窗口比较电路&#xff0c;窗口电压VwVsδ&#xff0c;Vs为窗口基准电压&…

ImageView倒影效果

先看下效果图&#xff1a;import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphi…

USB连接TF卡 SD卡硬件电路

1、电路芯片 TF卡芯片选择&#xff1a;GL823K。USB2.0 SD/MMC闪存读卡器单芯片。支持USB2.0高速传输&#xff0c;并符合通用串行总线规范。 它的引脚设计适合卡插口提供更容易的PCB布局。 TF卡防静电芯片&#xff1a;SMF05C。 2、电路 分享实际项目中用到的接口电路&#…

R语言-Kindle特价书爬榜示例 输出HTML小技巧

20170209更新&#xff1a; 根据回复提示&#xff0c;rvest包更新&#xff0c;原用函数html作废&#xff0c;需改用read_html 并后续amazon网页改版等 因此此文章代码失效&#xff01;各位可看评论内容了解详情 等以后有空再重写一遍代码&#xff0c;抱歉。果然代码还是放在gith…

工业RS485接口电路设计

1、电路芯片 485芯片有很多种&#xff0c;项目中用的比较多的是高速SP3485。满足RS-485和RS-422串行协议的要求&#xff0c;兼容工业标准规范&#xff0c;数据传输速率可高达10Mbps&#xff08;带负载&#xff09;。 2、工业设计 485需要做防雷考虑、瞬态过电压抑制、阻抗匹配…

MyBatis学习笔记(一)——MyBatis快速入门

转自孤傲苍狼的博客&#xff1a;http://www.cnblogs.com/xdp-gacl/p/4261895.html 一、Mybatis介绍 MyBatis是一个支持普通SQL查询&#xff0c;存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简…

一个USB HUB电路分享

1、USB HUB 当USB接口不够用的时候&#xff0c;可以采用USB HUB电路进行扩展&#xff0c;将一个USB接口扩展为多个&#xff0c;并可以使这些接口同时使用的装置。USB HUB根据所属USB协议可分为USB2.0 HUB、USB3.0 HUB与USB3.1 HUB。 选用的USB HUB芯片为 USB2514B. 参考文档&…

RIP、 OSPF、 EIGRP的区别

我们前面已经简单介绍了三种类型的动态路由协议算法分别是距离矢量算法&#xff0c;链路状态算法以及平衡混合算法&#xff0c;那么咱们今天就来看看这几种算法的类型代表&#xff1a;RIP、OSPF、EIGRP。而且它们都是内部网关协议&#xff08;IGP&#xff09;&#xff0c;也就是…

GDI+ 设置不同的分辨率来显示不同大小的图片

通过改变内存图像的分辨率来改变图像在屏幕的大小。 原理是&#xff1a;屏幕的大小/图像&#xff08;内存的图像&#xff09;的大小 屏幕的分辨率/图像&#xff08;内存的图像&#xff09;的分辨率。 注意&#xff1a;当图像的分辨率率变大时&#xff0c;图像本身的像素点的大小…

关于UILabel

一&#xff1a;创建一个label UILabel *label [[UILabel alloc]initWithFrame:CGRectMake(15, 100, 345, 100)]; 二&#xff1a;UILabel的一些属性 (1) 设置文字&#xff1a;label.text "这是我的一个Label"; (2) 设置文字颜色&#xff1a;label.textColor [UIC…