Entity Framework 实体框架综述
来源:互联网 发布:java 并发编程实践 编辑:程序博客网 时间:2024/05/17 16:14
Entity Framework 实体框架综述
ADO.NET Entity Framework 是微软以ADO,NET 为基础所发展出来的对象关系对应的解决方案。
一、产生背景
它是随着面向对象的软件开发方法发展而产生的。对象和关系数据是业务实体的两种表现形式。业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此ORM一般以中间件的形式存在,主要实现程序对象到关系数据库的映射。像Hibernate或NHibernate都是这个技术下的产物,但微软没有这样的对象对应工具,为了有这样的工具,微软开发了ADO.NET Entity Framework.
二、发展历程
微软在.NET Framework2.0发展时期,提出了ObjectSpace的概念,其技术与NHibernate相似,但ObjectSpace因为工程相当大所以在.NET Framework 2.0完成时ObjectSpace未完成,因此微软将它纳入下一版本的.NET Framework中,并加上了设计工具(Desinger),构成了现在的ADO.NET Entity Framework.
三、应用场景
用ADO.NET Entity Framework自动为我们生成DAL代码,ADO.NET Entity Framework可以进行保存、添加、删除、修改、读取对象。ADO.NET Entity Framework负责生成SQL,我们只需要关注对象就好了,而不需费心关注数据库结构。
四、体系结构
五、主要模块与类
实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。 概念架构定义语言文件 (.csdl) -- 定义概念模型。 存储架构定义语言文件 (.ssdl) -- 定义存储模型(又称逻辑模型)。 映射规范语言文件 (.msl) -- 定义存储模型与概念模型之间的映射。
重要的类:
1、ObjectContext:ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。
2、ObjectQuery:有个有用的方法ToTraceString(),这个方法用于追踪所执行的SQL语句,通过此方法我们可以获取所执行的SQL语句,以便我们查看、分析具体执行的SQL语句
3、ObjectStateEntry:ObjectStateEntry维护实体实例或关系实例的状态(已添加、已删除、已分离、已修改或未更改)、键值和原始值。还管理已修改属性的列表
4、ObjectStateManager:ObjectStateManager用于维护对象映射、对象状态/标识管理以及实体实例或关系实例的持久性。
六、CRUD典型的代码:增、删、查、改
1、根据学院ID获取年级列表
_context.Classes.Where(c => c.SchoolID == schoolId).Select(c => c.Grade).Distinct().ToList()
2.根据班级ID获取班级信息
return _context.Classes.FirstOrDefault(c => c.ClassID == id)
3、添加班级
_context.Classes.Add(entity);
int i = _context.SaveChanges()
4、删除班级
_context.Entry<Class>(entity).State=
System.Data.EntityState.Deleted;
int i = _context.SaveChanges()
5、修改班级
_context.Classes.Attach(entity);
_context.Entry<Class>(entity).State=
System.Data.EntityState.Modified
int i = _context.SaveChanges()
- Entity Framework 实体框架综述
- 实体框架Entity Framework 4.1快速入门
- 实体框架(Entity Framework)简介
- Entity Framework(实体框架 EF)
- 实体框架- Entity Framework 基础篇
- 实体框架(Entity Framework)--简介
- 初学实体框架EF(Entity Framework)
- 实体框架(Entity Framework)简介
- 实体框架(Entity Framework)简介
- Entity Framework 学习总结之一:ADO.NET 实体框架概述
- Entity Framework 学习总结之一:ADO.NET 实体框架概述
- 微软 Entity Framework 实体框架工具 - EF Power Tools
- 实体框架在WinForms(转载) Entity Framework in WinForms
- 10.C#:实体框架EF(entity framework)
- 再接再厉VS 2008 sp1 + .NET 3.5 sp1(6) - Entity Framework(实体框架)之Entity SQL
- Entity Framework 实体关系总结
- Entity Framework 实体关系总结
- .Net Entity Framework 实体关系
- 租了服务器,买了域名,从此搬家到www.recogu,com
- 软件开发模型的综述
- Android发送短信示例
- 将web服务器端口更改为80端口
- 以C#为例进行命名规范说明
- Entity Framework 实体框架综述
- Linq 综述
- 以C#为例,简述抽象类与接口的区别
- SOLID设计原则:
- 黑马程序员--String,StringBuffer,StringBuilder的描述
- 架构设计与软件设计的关系
- 完成一个GUI应用程序,一个窗口中含有4个按钮,两个label,按照流式布局器进行布局,每个组件之间间隔20px,居右对齐。
- Zend Framework教程-Zend_Helpers-视图助手-常见的视图助手-其它
- STL里面都有啥