Enity Framework已经是.NET下最主要的ORM了

Enity Framework已经是.NET下最主要的ORM了。而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华。切实地说,就是ORM让数据库在整个应用过程中更好地被封装和抽象化。

ORM一开始只是Mapping,最基础的就是表与类的对应、Column和属性的对应,这只是最基础的。在这个层次上,数据库对象通过Mapping在面向对象语言层面,也就是业务层面被封装成了业务对象,然后允许以操作业务对象的方式对数据库进行操作。

但是,在很长时间里,ORM的提升都被对象与关系间的“阻抗失配”困扰。一直以来很多ORM的水平都只是维持在了用对象的方式进行CRUD而已,除了减少代码错误、提高简单查询的开发效率,在复杂查询、性能等等一些方面结果都还是要跨层回到底层的操作框架比如http://ADO.NET甚至存储过程去解决问题。

所以,在应用场景上来说简单查询的场景EF和其他ORM都是能够胜任的。

终上所述,EF适用于面向对象结构和特性优先性比较高的 场景。
那么相对地,也说说不适用的场景。
首先大家所诟病的是性能问题,这点希望不要抛开原理去说EF的性能
EF由于其执行原理,性能损耗一般发生在:

    1. LINQ也就是Expression Tree创建和转换成SQL的过程
    2. 缓存比对的过程
    3. 特殊操作实现不合理
    4. 极限性能压力下的问题
    5. 性能泄露
时间: 2024-11-06 06:03:51

Enity Framework已经是.NET下最主要的ORM了的相关文章

ADO.NET Entity Framework 在哪些场景下使用?

在知乎回答了下,顺手转回来. Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华.切实地说,就是ORM让数据库在整个应用过程中更好地被封装和抽象化. ORM一开始只是Mapping,最基础的就是表与类的对应.Column和属性的对应,这只是最基础的.在这个层次上,数据库对象通过Mapping在面向对象语言层面,也就是业务层面被封装成了业务对象,然后允许以操作业务对象的方式对

Zend framework,xampp环境下的配置

Zend framework是PHP框架,我接触php一年的时间,接触Zend framework大概两个月,入门是通过“传智播客”韩顺平的视频讲座,使用的Zend framework是1.x版的,最新的是Zend framework2.x版本.本文介绍的是1.x版本的设置方法. 1.生成zend framework文件目录.方法有很多,(1)zf命令.(2)zend studio生成项目,(3)直接拷贝现有工程目录.通常我采用拷贝现有目录的方法. zend的目录结构如下: 2(1)采用虚拟主机

zend framework学习笔记(windows下)

zend framework安装 下载地址:https://framework.zend.com/downloads/archives 修改php.ini文件,将library目录添加到include_path路径中 *如没有权限修改php.ini文件,可以创建.htaccess文件中,在文件中添加php_value include_path ".;library路径",将该文件放在服务器的文档根目录 配置 ①将 php.exe目录添加到系统环境变量中 将zend framework目

Zend Framework(一) windows8.1下配置zend framework1.12

windows8.1下配置zend framework1.12配置步骤: 1.     下载 zend framework1.12库 2.      创建zend frameworkproject 2.1   手工创建(麻烦) 2.2   使用zf.bat 程序创建 (1)先将php.exe进行全局配置.方法是在环境变量path中加入你的php.exe路径 ;E:/wamp/php5 (2)dos下cd进入到zend framework框架bin文件夹.即zf.bat所在文件夹 (3)使用命令

如何让Entity Framework Db Frist模式下的Entity继承关系?

1.使用DB Frist模式创建实体数据模型 Db Frist创建实体数据模型(创建edmx并不是重点,各位随意即可),此处取名ZeroCodeDB,所得文件如图所示: 其中红框中的文件(ZeroCodeDB.tt)是各实体的生成的关键代码,即Entity的T4模板文件,本文正是要对此文件动刀. 2.修改Entity T4模板文件实现继承 新建类库创建父类和接口代码如下 namespace ZeroCode.DemoLib { public class DeomClass{} public in

Entity Framework的启动速度优化

刚开始的时候没有太在意,但是随着系统的发布,这种初次请求,或者闲置若干时间后第一次请求的漫长等待使得App的体验很差,很多时候App加载好半天数据都没过来.如果前端没处理好,还会导致App的假死.所以就花了点功夫研究下什么原因导致. 刚开始的时候,还以为是WebService的框架出了问题.后面使用App,通过Fiddler看到了,某次请求db.竟然长达6s中,并且每次导致请求超时都出现在db.访问这一块,这显然不正常.早期,我们访问数据库使用的是原始的ADO.NET 执行SQL语句,如果有参数

Entity Framework 全面教程详解(转)

目录 预备知识    2 LINQ技术 2 LINQ技术的基础 - C#3.0    2 自动属性    2 隐式类型    2 对象初始化器与集合初始化器    3 匿名类    3 扩展方法    4 Lambda表达式    4 .NET中的数据访问    4 DataSet方案    5 改进的的DataSet方案    5 手写代码通过ADO.NET2.0连接类与数据库交互    5 ORM – LINQ to SQL    6 深入了解Entity Framework    7 En

WWDC2014之iOS使用动态库 framework【转】

from:http://www.cocoachina.com/industry/20140613/8810.html JUN 12TH, 2014 苹果的开放态度 WWDC2014上发布的Xcode6 beta版有了不少更新,其中令我惊讶的一个是苹果在iOS上开放了动态库,在Xcode6 Beta版的更新文档中是这样描述的: Frameworks for iOS. iOS developers can now create dynamic frameworks. Frameworks are a

Entity Framework基础—第二篇

实体框架(Entity Framework) 简称EF,属于数据持久(持久保存)架里面的一种,其他的还有NHibernate,ibaties,Dapper.PetaPOCO...等,都是基于ORM思想. 首先介绍下O/R Mapping(ORM) 1.什么是ORM?ORM指的是面向对象的对象模型和关系数据库的数据结构之间的相互转化,可以理解为把表实体和表相互转化(在任何平台都适用,如php,java等). 传统ADO.net操作数据库: 基于ORM思想操作数据库: 接下来我们就一步步创建项目: