microsoft entity framework 包含哪些功能

如题所述

第1个回答  2016-10-27
Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。

目前 ADO.NET Entity Framework 的开发,在 Visual Studio 2008 中有充份的支持,在安装 Visual Studio 2008 Service Pack 1 后,文件范本中即会出现 ADO.NET 实体数据模型 (ADO.NET Entity Data Model) 可让开发人员利用 Entity Model Designer 来设计 EDM,EDM 亦可由记事本或文本编辑器所编辑。

主条目:ADO.NET Data Services
ADO.NET Entity Model Designer
ADO.NET Entity Model Designer
微软特别针对了网络上各种不同的应用程序 (例如 AJAX, Silverlight, Mashup 应用程序) 开发了一个基于 ADO.NET Entity Framework 之上的服务,称为 ADO.NET Data Services (项目代号为 Astoria),并与 ADO.NET Entity Framework 一起包装在 .NET Framework 3.5 Service Pack 1 中发表。

目前已有数个数据库厂商或元件开发商宣布要支持 ADO.NET Entity Framework:
(1) Core Lab,支持Oracle、MySQL、PostgreSQL 与 SQLite 数据库。
(2) IBM,实现 DB2 使用的 LINQ Provider。
(3) MySQL,发展 MySQL Server 所用的 Provider。
(4) Npqsql,发展 PostgreSQL 所用的 Provider。
(5) OpenLink Software,发展支持多种数据库所用的 Provider。
(6) Phoenix Software International,发展支持 SQLite 数据库的 Provider。
(7) Sybase,将支持 Anywhere 数据库。
(8) VistaDB Software,将支持 VistaDB 数据库。
(9) DataDirect Technologies,发展支持多种数据库所用的 Provider。
(10) Firebird,支持 Firebird 数据库。

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

--------------------------
Entity Framework7 部分新功能
1、在Linq to Entity 查询中对列使用类型转换
2、Code-First下用数据迁移更新数据库时使用修改(Alter)代替删除(Dropping)后重新创建
3、删除孤儿(orphans)记录
4、日志记录

Entity Framework7 有哪些改变?

1、新特性
a、支持对关系型数据的批量更新。在这之前,就是说他的更新效率太低,如果要实现批量更新,特别插入时,需要借助sql语句或是第三方工具类。相信这是很多人期待的功能;
b、支持唯一约束。它允许你在实体内除主键外额外标识一个键,将他们用作外键。
2、行为(Behavior)改变
在EF6和前期的版本中,顶层API就有很多不直观的行为,虽然EF7尽可能是保持顶层API的相同,但仍去掉了一些限制并添加了一些我们期待的行为。什么意思呢?这听起来有点迷糊,举个例子来说明吧,以前的查询,虽然Linq给我们带来了很大方便,但限制多呀,整个Linq查询翻译成一条单独的sql查询,Linq查询中只能包含EF能翻译成sql的语句或方法;还有就是sql的生成,有时生成了很复杂、效率不高,且不是我们希望的sql语句。EF7改变这种情况,可以返回多结果集,sql评估工作也不是在数据库端来做了,变更到客户端。这样就为生成sql提供了很大的灵活性。如果还有点晕,没关系,先有个印象就行。
3、变得更加简单、灵活
直接使用一个例子来说明吧。我们想通过EF的元数据来获取Blog实体被映射到数据库中的哪一张表。在这之前,我们的代码会是这样:
4、去掉了一些特性
a、每类型映射多个实体集(MEST)。这个特性,估计用的人很少,正是因为使用的人少,所以才去掉。它是什么意思呢?就是一个类型对应数据库中的多张表,例如:表Product 和 RetriedProduct都映射到Product类。如果你还有这样的需求,使用继承是更好的选择。
b、非常复杂的类型映射。在EF6.x中,可能在一个继承映射中组合TPH,TPT和TPC。EF7不再支持这种复杂的映射了,它要求你的CLR 类型尽量跟表结构保持一至。至于为什么,不少人到现在都还没有弄明白什么是TPH,TPT,TPC,那更说不上灵活运行了,这也是导致EF6.x MetadataWorkspace异常复杂的主原之一。
c、去掉edmx建模。这可能会让很多人失望,因为它曾经给我们带来多么美好的回忆。但它有很多的不足,比较一些复杂的需求,不适应ddd分层设计,不符合现在流行的POCO等。最主要的是,有更好的选择code-based建模,这就是我们常说的code-first。 可能你会有疑问,怎么code-first和edmx是平级概念,它不是跟db-first、model-first平级的吗? 没错,它是跟edmx平级的,d、ObjectContext API。它陪着EF一起成长,到EF4.1时才被DbContext弄到幕后.不过DbContext只是它的外观模式,底层仍然是使用的它。有时需要使用一些高级的功能时,我们还得想办法把它找出来。去掉它并不意味着它以前的一些功能不能用了。EF7重写了底层,把之前一定需要ObjectContext才能使用的api包含在了DbContext中,并且让调用更加清晰,简单。
e、延迟加载。 这功能相信大家不陌生,它一直被当成EF的一大特点,但现在,它将要从EF7中去掉。不确定最终的版本微软会不会把它请回来,因为这一点存在很大的争论。无论是开发人员,还是EF的开发团队。一,不是所有的应用都需要延迟加载;二、不少的EF使用者对它没有深入的去了解,经常会有人问,为什么会出现"无法完成该操作,因为 DbContext 已释放"这样的问题。这说明这个功能反而给一部份使用者带来了困惑。
这些变化并不是最终的,也许文中说的,会发生改变。当然这里也不可能列出所有的变化点,毕竟EF7还在处于开发过程中。总之,它是一个革命性的版本,以至于有人在争论应该叫他EF7呢,还是EF1。
5、对非关系型数据库的支持,
6、官方支持SQLite;

以上均为网络收集而来,希望有用.如果没有很大用处,还请多多见谅

microsoft entity framework 包含哪些功能
Entity Framework7 部分新功能 1、在Linq to Entity 查询中对列使用类型转换 2、Code-First下用数据迁移更新数据库时使用修改(Alter)代替删除(Dropping)后重新创建 3、删除孤儿(orphans)记录 4、日志记录 Entity Framework7 有哪些改变?1、新特性 a、支持对关系型数据的批量更新。在这之前,就是...

.NET主流的ORM框架 ,新型 ORM 功能
Entity Framework 是 Microsoft 推出的强大 ORM 框架,适用于 .NET 开发,支持多种数据库,提供丰富文档和教程。基于面向对象模型,利用 LINQ 进行查询。以其强大功能和易用性,成为 .NET 开发者的首选 ORM 框架之一。SqlSugar SqlSugar 是一个高性能、轻量级的 ORM 框架,适用于 .NET 平台,具备简单易...

Entity Framework7 有哪些不同?现在开发到什么程度了
a、支持对关系型数据的批量更新。 什么意思就不用细说了吧,在这之前,很多人喷粪EF,就是说他的更新效率太低,如果要实现批量更新,特别插入时,需要借助sql语句或是第三方工具类。相信这是很多人期待的功能;b、支持唯一约束。它允许你在实体内除主键外额外标识一个键,将他们用作外键。B、行为(...

一般在entityframework中通常创建几个dbcontext?
一些大型或复杂项目中,开发者倾向于创建多个DBContext,以实现模块化设计,提高系统可维护性和扩展性。这类项目通常已经实现了模块分隔策略,甚至通过插件系统增加功能模块。是否需要多个DBContext,取决于项目实际需求的复杂度和模块化程度。项目是否复杂到需要这种结构,是决定创建多个DBContext的关键因素。

微软的NET Framework是做什么用的?
一、提供基础服务 NET Framework为Windows应用程序提供了基础服务支持。它包含了大量的类库,这些类库封装了常用功能,如文件操作、网络通信、数据访问等,使得开发者能够更高效地编写代码。此外,它还提供了诸如调试、部署等开发工具,大大简化了开发过程。二、确保兼容性和稳定性 由于NET Framework是微软推出...

entity framework 支持哪些数据库
你好:EF可以支持多数据库的,比如sql server, mysql , oracle,它可以做到迁移数据库,可以几乎不改代码,但是,edmx其实是一个配置文件,也包含了目标数据库的信息。如果要做到更改配置就可以切换数据库,那么,有以下几点:1:3种数据库的provider的文档要仔细看,确认哪些功能是不被支持的,取支持功能...

netframework是什么意思
一、基本定义 NET Framework是微软为开发者提供的一套广泛使用的、功能强大的编程框架。它包含了大量用于构建Windows操作系统应用程序的类库、API和工具集。该框架的主要目标是简化应用程序开发过程,提高开发效率和应用程序的性能。通过NET Framework,开发者可以使用多种语言来编写代码,并构建桌面应用、Web...

LINQ TO SQL 和 ADO.NET ENTITY 有什么区别呢?
LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术。他们之间的本质区别在于EF对数据库架构和查询的类型实行了更好的解耦。使用EF,查询的对象不再是完全对应数据库架构的C#类,而是更高层的抽象:Entity Data Model。这提供了额外的灵活性,但是在性能和简单性上面也会有所损失。具体...

Entity framework 可以一次查询多个表返回到对应的list 里吗_百度知 ...
public List<B> B{get;set;}\/\/主表包含的子表集合 } public class B { public int ID{get;set;} public int AID{get;set;}\/\/A表的外键字段 public string Address{get;set;} public A A{get;set;}\/\/子表所属的主表 } 建好实体后,你的查询方法稍微改一下就可以了 var query=db.A...

linq to sql 和entity framework 相比,哪个性能更好
单从实现方式上来讲应该是entity framework效率更高,虽然我从没用过,也很少使用linq,entity framework是一套orm框架,类似的还有很多,而linq to sql 是在orm的基础上再去使用linq特性实现某个功能,相对基础语法,linq的使用只是减少了代码,却影响了性能。所以我认为linq to sql性能会差一些。但是,...

相似回答