ADO.NET-EF:ADO.NET Entity Framework 百科
ylbtech-ADO.NET-EF:ADO.NET Entity Framework 百科 |
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。
1.返回顶部 |
- 软件名称:Entity Framework
- 开发商:Microsoft
- 软件平台:.NET Framework
- 软件版本:6.1.3
- 更新时间:2015/03/10
- 软件语言:C#
- 软件授权:Apache许可证
2.返回顶部 |
简介
ADO.NET Entity Framework 建模
带有有效载荷的多对多关系建模
自引用关系建模
跨表实体建模
多实体建模
多表派生建模
表分割建模
版本信息
版本
|
支持.NET
|
发布情况
|
备注
|
Entity Framework 3.5
|
2.0+
|
包含于.NET 3.5中
|
支持EDMX生成,通过扩展可支持POCO类的生成
|
Entity Framework 4.0
|
4.0+
|
包含于.NET 4.0中
|
|
Entity Framework 4.X
|
4.0+
|
可通过NuGet获取
|
支持Database First、Model First、Code First三种生
成模式
|
Entity Framework 4.5
|
4.5+
|
集成于.NET 4.5中
|
|
Entity Framework 5.X
|
4.5+
|
可通过NuGet获取
|
支持枚举字段,性能有较大提升,支持.NET 4.0的版本
为Entity Framework 4.4
|
背景

学习 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。
架构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version= "1.0" encoding= "utf-8" ?> <EntityContainer Name= "EmployeesContext" > <EntitySet Name= "Employees" EntityType= "Employees.Employees" /> </EntityContainer> <EntityType Name= "Employees" > <Key> <PropertyRef Name= "EmployeeId" /> </Key> <Property Name= "EmployeeId" Type= "Guid" Nullable= "false" /> <Property Name= "LastName" Type= "String" Nullable= "false" /> <Property Name= "FirstName" Type= "String" Nullable= "false" /> <Property Name= "Email" Type= "String" Nullable= "false" /> </EntityType> </Schema> |
1
2
3
4
5
6
7
8
9
10
11
|
<?xml version= "1.0" encoding= "utf-8" ?> <Mapping Space= "C-S" xmlns= "urn:schemas-microsoft-com:windows:storage:mapping:CS" > <EntityContainerMapping StorageEntityContainer= "dbo" CdmEntityContainer= "EmployeesContext" > <EntitySetMapping Name= "Employees" StoreEntitySet= "Employees" TypeName= "Employees.Employees" > <ScalarProperty Name= "EmployeeId" ColumnName= "EmployeeId" /> <ScalarProperty Name= "LastName" ColumnName= "LastName" /> <ScalarProperty Name= "FirstName" ColumnName= "FirstName" /> <ScalarProperty Name= "Email" ColumnName= "Email" /> </EntitySetMapping> </EntityContainerMapping> </Mapping> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
?xml version= "1.0" encoding= "utf-8" ?> <Schema Namespace= "Employees.Store" Alias= "Self" Provider= "System.Data.SqlClient" ProviderManifestToken= "2005" <EntityContainer Name= "dbo" > <EntitySet Name= "Employees" EntityType= "Employees.Store.Employees" /> </EntityContainer> <EntityType Name= "Employees" > <Key> <PropertyRef Name= "EmployeeId" /> </Key> <Property Name= "EmployeeId" Type= "uniqueidentifier" Nullable= "false" /> <Property Name= "LastName" Type= "nvarchar" Nullable= "false" MaxLength= "50" /> <Property Name= "FirstName" Type= "nvarchar" Nullable= "false" /> <Property Name= "Email" Type= "nvarchar" Nullable= "false" /> </EntityType> </Schema> |
用户端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// Initialize the EntityConnectionStringBuilder. EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); //Set the provider name. entityBuilder.Provider = providerName; // Set the provider-specific connection string. entityBuilder.ProviderConnectionString = providerString; // Set the Metadata location. entityBuilder.Metadata = @"res: //*/AdventureWorksModel.csdl| res: //*/AdventureWorksModel.ssdl| res: //*/AdventureWorksModel.msl"; Console.WriteLine(entityBuilder.ToString()); using (EntityConnection conn = new EntityConnection(entityBuilder.ToString())) { conn.Open(); Console.WriteLine( "Just testing the connection." ); conn.Close(); } |
1
2
3
4
5
|
// Get the contacts with the specified name. ObjectQuery<Contact> contactQuery = context.Contact .Where( "it.LastName = @ln AND it.FirstName = @fn" , new ObjectParameter( "ln" , lastName), new ObjectParameter( "fn" , firstName)); |
1
2
3
4
5
6
|
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities()) { ObjectQuery<Product> products = AWEntities.Product; IQueryable<Product> productNames = from p in products select p; |
开发工具
派生服务

微软特别针对了网络上各种不同的应用程序 (例如 AJAX, Silverlight, Mashup 应用程序) 开发了一个基于 ADO.NET Entity Framework 之上的服务,称为 ADO.NET Data Services (项目代号为 Astoria),并与 ADO.NET Entity Framework 一起包装在 .NET Framework 3.5 Service Pack 1 中发表。
支持厂商
3.返回顶部 |
4.返回顶部 |
5.返回顶部 |
6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
ADO.NET-EF:ADO.NET Entity Framework 百科的更多相关文章
- ADO.NET、NHibernate和Entity Framework的比较
---原文地址:http://www.xuebuyuan.com/2162973.html 1,ADO.NET属于传统的数据访问工具,开发的时候需要我们手动去编写操作数据库的各种操作,当然性能也就不用 ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- [EF] 如何在 Entity Framework 中以手动方式设定 Code First 的 Migration 作业
Entity Framework (简称 EF) 发展到现在, 版本已经进入 6.1.0, 距离我写的「在 VS2013 以 Code First 方式建立 EF 资料库」这篇文章已有半年的时间.如果 ...
- 【EF Core】Entity Framework Core 批处理语句
在Entity Framework Core (EF Core)有许多新的功能,最令人期待的功能之一就是批处理语句.那么批处理语句是什么呢?批处理语句意味着它不会为每个插入/更新/删除语句发送单独的请 ...
- Entity Framework (EF) Core工具创建一对多和多对多的关系
一. EntirtyFramework(EF)简介 EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术,微软官方提供的ORM工具让开发人员节省数据库访问的代码时间 ...
- Entity Framework入门系列(1)-扯淡开篇
这是我在Cnblogs上的第一个系列,但愿能坚持下去: 惯例索引 Entity Framework入门系列(1)-开篇兼索引: Entity Framework入门系列(2)-初试Code First ...
- Code First :使用Entity. Framework编程(1) ----转发 收藏
这个是在学习EF CodeFirst时发现的,对于初学者还是不错的.果断转发,方便自己以后查阅和学习. 对于学习Code First 这个教程讲解的还是很详细. 第一章:欢迎来到Code First ...
- Entity Framework 学习
Entity Framework 学习初级篇1--EF基本概况 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry. ...
- Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)
很久没有写博客了,一些读者也经常问问一些问题,不过最近我确实也很忙,除了处理日常工作外,平常主要的时间也花在了继续研究微软的实体框架(EntityFramework)方面了.这个实体框架加入了很多特性 ...
随机推荐
- 20191023 XXL-JOB
概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 文档地址: 官方文档 文档写的很详细,参考着 ...
- 【报错】springboot thymeleaf超链接跳转 404
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as ...
- 漫漫人生路,我们该何去何从! Python让我找到了方向
互联网寒冬 2017年冬天,是我人生中最难熬的一个冬天,其实2017年的冬天并不算太冷,比这冬日的寒风还要严寒的要属这所谓的"互联网寒冬"吧!各大厂裁员的消息充斥着互联网,互联网表 ...
- Hdu 4578 Transformation (线段树 分类分析)
Transformation Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others)T ...
- .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)(转)
自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add.Delete.CreateO ...
- 行人重识别(ReID) ——数据集描述 CUHK03
数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ...
- C# 异常处理最佳实践,解决代码分析提示CA1031:不要捕捉一般异常类型的解决办法
异常类型 异常一般分为系统异常 和 应用异常.系统异常有无法连接数据库,而应用异常是业务逻辑异常,比如授权失败. 在 C# 中异常基于 System.Exception,派生出 System.Syst ...
- nginx多层反代配置变量proxy_set_header
Nginx多层反代配置变量proxy_set_header过程记录 第一层代理: (1)路径: $ vim /data/soft/nginx/conf/vhost/xixi.conf (2)内容:(注 ...
- IPC之套接字
IPC(Inter-Process Communication,进程间通信)实现方式 1)管道: - 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用(进程的亲缘关系 ...
- tac反向显示文件内容
1.命令功能 tac是cat的反向拼写功能是反向显示文件内容.cat是从文件第一行开始读取文件输出,tac是从最后一行开始读取文件并进行反向输出. 2.语法格式 tac [option] [fil ...