ASP.NET Core 使用Entity Framework Core

什么是Entity Framework Core

Entity Framework Core
EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

在这里插入图片描述
对象关系映射程序 (O/RM),使用模型对象通过EF Core 数据库提供程序访问数据库
在这里插入图片描述Entity Framework Core通过Code First和DB First两种方式实现应用程序与数据库的对象关系映射。
Code First

  • Code First是一种非常流行的方法,可以完全通过模型类代码控制数据库。
  • 所有的数据库操作,数据库的更改,都取决于代码。
  • 需要创建数据模型。

DB First

  • 数据库优先的方法是当数据库准备好,然后实体框架将自动完成创建实体。
  • 如果已经设计了一个数据库,并且不想做额外的工作,那么可以采用这种方法。
  • 可以手动修改数据库并从数据库更新模型。
  • 实体框架能够基于关系数据库中的表和列创建模型类。

在这里插入图片描述
EF Core 支持多个数据库引擎。数据库提供程序
在这里插入图片描述

Entity Framework Core 中的DbContext

DbContext 实例表示与数据库的会话,可用于查询和保存实体实例。 DbContext 是工作单元和存储库模式的组合。

DbContext 生存期、配置和初始化

使用DbContext前需要NuGet添加Microsoft.EntityFrameworkCore.对应的数据库提供程序的包。
在这里插入图片描述
在这里插入图片描述

ASP.NET Core注入数据库的会话服务
在这里插入图片描述

配置数据库连接字符串
在这里插入图片描述

ASP.NET Core 仓储模式

仓储模式作为领域驱动设计(Domain-Driven Design,DDD)的一部分,在系统设计中的使用非常广泛。它主要用于解除业务逻辑层与数据访问层之间的耦合,使业务逻辑层在访问数据库时无须关心数据的来源及存储方式,所有这些直接对数据的操作均封装在具体的仓储实现中。业务逻辑层只需要面向据访问层的抽象无须关心数据据访问层的具体实现(依赖倒置原则DIP:高级模块不应该依赖于低级模块。两者都应该依赖于抽象)

仓储(Respository)是存在于工作单元和数据库之间单独分离出来的一层,是对数据访问的封装。其优点:

  • 业务层不需要知道它的具体实现,解除业务逻辑层与数据访问层之间的松耦合,达到了分离关注点。
  • 提高了对数据库访问的维护,对于仓储的改变并不会改变业务的逻辑,数据库可以用Sql Server、MySql等。

在ASP.NET Core 中利用仓储模式结合依赖注入实现业务逻辑层与数据访问层之间松耦合设计。

实现仓储,通过数据库会话操作数据库
在这里插入图片描述
配置服务注入仓储
在这里插入图片描述控制器中注入仓储并使用
在这里插入图片描述

仓储模式结构图

在这里插入图片描述

Entity Framework Core 迁移功能

新建项目因为没有添加数据迁移,没有生成对应数据库,会产生如下报错。
在这里插入图片描述
Entity Framework Core 迁移

Entity Framework Core 种子数据

在DbContext重载方法OnModelCreating中添加原始数据
在这里插入图片描述

Entity Framework Core 种子数据参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值