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应用程序

Entity Framework 简介

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 实体数据模型”,如下图所示:
Entity Framework 简介
2.选择 “来自数据库的EF设计器”。
Entity Framework 简介
3.可以新建连接。
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介
4.生成模型。
Entity Framework 简介
5.在代码中添加上下文对象DevpModelEntities,然后初始化student对象,添加到StudentTb中。
Entity Framework 简介

四、Model First 开发方式

Model First即模型优先开发方式,在没有数据库的情况下,可以使用EF设计模型,将模型同步到数据库中。

1.添加数据实体模型

1.右击项目,添加——>新建项,选择“ADO.NET 实体数据模型”,如下图所示:
Entity Framework 简介
Entity Framework 简介
2.右击然后选择“新增——>实体”
Entity Framework 简介
Entity Framework 简介
3.添加标量属性
Entity Framework 简介
4.修改字段的设置
Entity Framework 简介

2.生成数据库

1.右击选择“根据模型生成数据库”
Entity Framework 简介
2.新建连接
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介
Entity Framework 简介

3.操作数据

1.在代码中添加上下文对象DevpModelEntities,然后初始化student对象,添加到StudentTb中。

五、Code First 开发方式

Code First可以选择使用类的特性和属性执行配置或者使用XML文件配置。
1.右击项目,添加——>新建项,选择“ADO.NET 实体数据模型”,如下图所示:
Entity Framework 简介
Entity Framework 简介
2.删除Model.edmx文件,然后添加System.Data.Entity.dll和 EntityFramework.dll
Entity Framework 简介
使用NuGet安装EntityFramework
Entity Framework 简介
3.新建Orders和OrderDetail类
Entity Framework 简介
Entity Framework 简介

4.新建FirstCodeContext类
Entity Framework 简介
5.配置数据库
Entity Framework 简介

Entity Framework 简介

六、EF简单使用

Entity Framework 简介
1.添加
Entity Framework 简介
2.修改
Entity Framework 简介
3. 删除
Entity Framework 简介