EF框架的优点是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF框架的优点是啥?相关的知识,希望对你有一定的参考价值。
Entity Framework 应用程序有以下优点:
1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
3、可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
4、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
5、多个概念性模型可以映射到同一个存储架构。 · 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
扩展资料:
实体框架(Entity Framework)是微软以ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句当中解放出来。
相对于传统的ADO等各种数据库操纵技术来说,微软的ADO.Net更为先进,它封装了很多底层操作,抽象了接口,针对接口编程,将调用统一化。
EF框架的应用:
首先,实在VS中建立新项,添加新建项—数据—ADO.NET实体数据模型,然后设置其自己想要的映射的数据集,设置成功后,会生成一些列文件:
如上图所示,这就是我测试用的shoppingBus数据库生成的实体映射。其中有3个重要的类,分别是:
dataModel.Context.tt下的dataModel.Context.cs类,这个类是包含的数据库的上下文关系,我当时在看的时候就想到了设计模式策略模式中的context类,我认为它们有着共同之处,都是负责数据间的交互和实现。
DataModel.tt下的数据表类,比如这里的就是pet.cs类和petType.cs类。这里就是相当于具体的实体类,值得特别说明的是,EF生成的实体映射同时包括表关系,主外键的关系等。
参考资料:
百度百科-ADO.NET Entity Framework
参考技术AEF框架的优点如下:
1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
3、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
4、多个概念性模型可以映射到同一个存储架构。语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
EF框架可以理解成微软的一个ORM产品,用于支持开发人员通过对概念性应用程序模型编程来创建数据访问应用程序,目标是降低面向数据的应用程序所需的代码量并减轻维护工作。
扩展资料:
EF框架的缺点:
非SQL Server数据库且无该数据库的DataProvider。
高性能要求。在进行一些复杂查询的情况下,EF的性能表现不太好,而开发人员又无法控制SQL语句的生成
高安全性要求。有时候DB用户仅仅具有EXEC的权限,而EF自动生成的类又不好用,还是需要自己来写。
EF框架常见的模型:
带有有效载荷的多对多关系建模
在带有有效栽花的多对多关系数据库中 ,关系表除了主键外 ,还有其他数据字段。在这种关系中 ,直接把表映射到实体模型中 ,两实体表自动创建对应的实体类型 ,而关系表也被映射成为一实体类型 ,在此实体类型中除了原有属性名 ,还有对应两实体表的导航属性 ,可分别通过 1 对多关系进行对象导航。
自引用关系建模
对于分类表之类的自引用表 ,把表映射成为实体类型后 ,其中将包含两个导航属性 分别对应父、子对象 ,其中父对象为 1 端 ,多端为子对象集合 ,因此分别把 1 端改名为父端名称如Parent Category,多端改名为子对象集合名称如 Sub Categories。由此两导航属性可方便地访问到对应对象。
参考技术B 在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品。用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程序所需的代码量并减轻维护工作。Entity Framework 应用程序有以下优点:· 应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
· 应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
· 可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
· 开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
· 多个概念性模型可以映射到同一个存储架构。
· 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。
· 概念架构定义语言文件 (.csdl) -- 定义概念模型。
· 存储架构定义语言文件 (.ssdl) -- 定义存储模型(又称逻辑模型)。
· 映射规范语言文件 (.msl) -- 定义存储模型与概念模型之间的映射。
实体框架 使用这些基于 XML 的模型和映射文件将对概念模型中的实体和关系的创建、读取、更新和删除操作转换为数据源中的等效操作。EDM 甚至支持将概念模型中的实体映射到数据源中的存储过程。它提供以下方式用于查询 EDM 并返回对象:
· LINQ to Entities -- 提供语言集成查询 (LINQ) 支持用于查询在概念模型中定义的实体类型。
· Entity SQL -- 与存储无关的 SQL 方言,直接使用概念模型中的实体并支持诸如继承和关系等 EDM 功能。
· 查询生成器方法 --可以使用 LINQ 风格的查询方法构造 Entity SQL 查询。追问
能简单一点的说出他的优点 ,在使用EF框架做项目的优点。
本回答被提问者采纳ORM框架的优点和缺点,大家开发是自己写框架还是用别人的啊?
项目开发,自己都是写参数化增删改查,觉得有点累人,突然想起了曾经用过的ORM,请问一下,平时大家开发用这个框架吗?这个框架是自己写还是用别人的?还有就是这个框架的优缺点?好多东西没用了,用过的、书上看的东西都记不清楚了。
ORM:对象关系映射(Object Relational Mapping,简称ORM),目的是想像操作对象一样操作数据库.因为数据库不是面向对象的,所以需要编程进行映射.ORM框架理论上说可以比不用的情况,开发效率更高,但像hibernate的学习成本还是比较高的。缺点主要是要花时间学习框架和执行效率相对会差些;这些对于大项目来说还是值得的,只要先一个简单易用的ORM框架就行。
常见的ORM框架有hibernate,半自动orm框架有mybatis,还有新的简单易用的bee框架. jpa只是想让所有的orm框架都统一使用的标准接口; hibernate有实现jpa,但mybaits没有.
用hibernate和mybatis,每次操作一个表,都需要编写一次dao文件,感觉做些重复工,好枯燥无味。 Bee框架:一个十分钟即可学会的ORM框架。它不用每写一个dao就要编写一次代码,省时省力,开发效率极高,编码复杂度为O(1).一个开发成本和开发速度都不比php差的java ORM框架。 参考技术A ORM是这类框架的总称,而不是具体的框架产品。每种编程语言都有对应的ORM框架,例如.Net平台下就有EF(Entity Framework)。ORM的优点是使用方便,对于增删改查这类一般性的应用非常简易,可以节省很多手动编写代码的时间和精力。缺点是需要一定的时间去学习如何使用,对于特殊性的应用需要深入了解框架内部的运行原理,而且此类框架的效率一般比手动编写的代码低。 参考技术B SqlSugar.dll 是一个高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50%
2、支持多种数据库 ,sql版本更新最快,其它会定期更新,可以在多种数据库用一种编程方式
3、支持.net Core
4、支持多库并行计算
5、带有实体生成函数和T4模版生成实体
6、无需任何配置 ,还你一个干净的model,可以没有主键 ,也可以有多个主键 ,或者多个自增列
以上是关于EF框架的优点是啥?的主要内容,如果未能解决你的问题,请参考以下文章