Entity Framework 简介
Entity Framework简介
一、O/R Mapping
1.ORM
ORM是指面向对象的对象模型和关系型数据库的数据结构之间的转换。
ORM把数据库映射成对象:
数据库的表(table) ——> 类(class)
记录(行数据库) ——> 对象(object)
字段(field) ——> 对象的属性(attribute)
数据库的基本操作有四种:create(新建)、read(读取)、update(更新)和delete(删除),
ORM 将这四类操作,都变成了对象的方法。
2.ORM优缺点
1)优点
开发效率更高
数据访问更抽象
支持面向对象封装
2)缺点
无法表达复杂的查询
性能不如原生的SQL
抽象了数据库层,无法定制特殊的SQL
3.常见.Net的ORM框架
常见的ORM框架有EF、Dapper、NHibernate
1)EntityFramework
优点:功能强大,lambda api
缺点:功能庞大冗余,很多功能用不上
PS:使用EF是为了高效的开发,若项目对性能要求很高或业务十分复杂,或许使用轻量级ORM框架(Dapper)、原生的SQL会更合适
2)Dapper
优点:
轻量级,数据库种类支持丰富,sql写法灵活,运行速度快
缺点:
处理多表联查、where条件复杂之类的查询时,ORM的语法会变得复杂
3)NHibernate
优点:
(1)将数据库模式映射为较完全的对象模型,支持封装,继续机制,功能较强大,比一般的ORM灵活性高
(2)代码自动生成,减少代码和sql的开发量
(3)NHibernate的代码可读性和文档都比较好
缺点:
(1).比较复杂,需要配置一些xml
(2).数据库需要有良好的设计和完善的约束
(3).不合适统计查询
二、EF
Entity Framework 全称 ADO.NET Entity Framework,是微软在ADO.NET基础上开发的实体框架,是一组支持面向数据开发的技术。
EF显著的优势:
1)EF是微软开发的产品,和VS开发工具兼容较好
2)提供强大的模型设计器
3)支持跨数据库(只需通过配置,可以更换数据库)
三、Database First 开发方式
Database First即数据库优先开发方式,旧的开发方式,目前使用较少。
1.创建winform应用程序
2.创建数据库
USE [DevpModel]
GO
CREATE TABLE [dbo].[StudentTb](
[Id] [int] IDENTITY(1,1) NOT NULL,
[UserName] nvarchar NULL,
[Age] [int] NULL,
[Remark] nvarchar NULL,
CONSTRAINT [PK_StudentTb] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
3.添加数据实体模型
1.右击项目,添加——>新建项,选择“ADO.NET 实体数据模型”,如下图所示:
2.选择 “来自数据库的EF设计器”。
3.可以新建连接。
4.生成模型。
5.在代码中添加上下文对象DevpModelEntities,然后初始化student对象,添加到StudentTb中。
四、Model First 开发方式
Model First即模型优先开发方式,在没有数据库的情况下,可以使用EF设计模型,将模型同步到数据库中。
1.添加数据实体模型
1.右击项目,添加——>新建项,选择“ADO.NET 实体数据模型”,如下图所示:
2.右击然后选择“新增——>实体”
3.添加标量属性
4.修改字段的设置
2.生成数据库
1.右击选择“根据模型生成数据库”
2.新建连接
3.操作数据
1.在代码中添加上下文对象DevpModelEntities,然后初始化student对象,添加到StudentTb中。
五、Code First 开发方式
Code First可以选择使用类的特性和属性执行配置或者使用XML文件配置。
1.右击项目,添加——>新建项,选择“ADO.NET 实体数据模型”,如下图所示:
2.删除Model.edmx文件,然后添加System.Data.Entity.dll和 EntityFramework.dll
使用NuGet安装EntityFramework
3.新建Orders和OrderDetail类
4.新建FirstCodeContext类
5.配置数据库
六、EF简单使用
1.添加
2.修改
3. 删除