Entity Framework框架详解(EF)

EF框架

‌EF框架(Entity Framework)是一个由微软提供的对象关系映射(ORM)框架,允许开发者使用面向对象的方式来处理数据库操作。‌ EF框架的核心功能是将数据库中的表映射为应用程序中的对象,从而使得开发者可以通过操作这些对象来进行数据库操作,而不需要编写大量的SQL代码。‌

官方文档:实体框架文档中心 | Microsoft Learn

概念

  • EF框架的主要组成部分包括实体数据模型(EDM),它由概念模型、存储模型和映射模型组成。概念模型定义了应用程序中使用的实体和关系,独立于数据库的具体实现;存储模型定义了数据库的结构,包括表、列和关系;映射模型则定义了概念模型和存储模型之间的映射关系。
  • EF框架的优势在于它简化了数据库操作,使得业务逻辑和数据存取逻辑分离,减少了代码的复杂性。此外,EF框架支持LINQ to Entities,这是一种用于针对对象模型编写查询的查询语言,使得查询更加直观和灵活。

EF 的主要组成部分:

  • Entity Data Model (EDM):EDM 是 Entity Framework 的核心,它定义了应用程序的数据模型。它包括三个主要部分:概念模型(CSDL)、存储模型(SSDL)和映射模型(MSL)。
  • (1) 概念模型 (CSDL):概念模型定义了应用程序中使用的实体和关系。它是一个抽象层,独立于数据库的具体实现。
  • (2) 存储模型 (SSDL):存储模型定义了数据库的结构,包括表、列、关系等。它与数据库的物理结构紧密相关。
  • (3) 映射模型 (MSL):映射模型定义了概念模型和存储模型之间的映射关系。它指定了概念模型中的实体如何映射到存储模型中的表。

EF 的优势(与 的对比)

如果不用ORM框架,我们一般这样来使用ADO.NET进行数据库开发:

1.将ADO.NET对数据库的操作封装到一个类里SqlHelper中

2.在DAL层调用SqlHelper

3.其他层再调用DAL进行数据库操作

优势

  • 1.【逻辑】业务逻辑和数据存取逻辑分离开来;
  • 2.【新增操作】 EF:一次连接,执行多条sql;SqlHelper里使用一般写法,连接又无法释放,用using,会造成多次连接重置;
  • 3.【更新操作】 EF自动优化,只update set 有变化的字段,EF也可以很方便地只更新 实体的指定属性,产生的sql语句里的set后的字段会更少;
  • 4.【智能提示】 用linq, lamda表达式 有智能提示,写错了编译不过;写sql语句字符串,调sqlhelper,sql语句写错一样编译通过;
  • 5.【安全】 省去了防止sql注入的麻烦;
  • 6.【数据库变更】使用EF,切换较方便;
  • 7.【效率】 使用EF要比使用Ado.net开发效率高;
  • 8.【可读性】 代码的可读性更高.

EF的三种开发模式

Database First(数据库优先)
  • 如果已经拥有数据库,Visual Studio中内置的Entity Framework设计器可以自动生成一个数据模型,该模型由对应于现有数据库对象(如表和列)的类和属性组成。有关数据库结构,数据模型及映射之间的信息以XML格式存储在.edmx文件中。实体框架设计器提供了一个可视化界面,您可以使用它来显示和编辑.edmx文件。
Model First(模型优先)
  • 如果您还没有数据库,则可以使用Visual Studio中的Entity Framework设计器在.edmx文件中创建一个模型。当模型建完后,可以执行.edmx文件来创建数据库。
Code First(代码优先)
  • 无论您是否拥有数据库,都可以使用Code First。如果没有数据库,可以编写类和对应于表和列的属性。如果有数据库,那么Entity Framework可以生成与现有表和列对应的类和属性。如果使用Code First创建数据库,则可以使用“migration(迁移)”来将数据库部署到生产环境。当数据模型更改时,可以将更改部署到生产环境中,而不改变原有的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Csharp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值