浏览器标题切换
浏览器标题切换end

Intern Day78 - EF Core中的DbContext和DbSet的理解

个人理解

本人的理解就是:DbContext是C#用来连接数据库的,基于DbContext,我们可以不用对数据库本身进行操作,只需要在C#的编译环境里面直接操作数据库就行了。然后DbSet是我们用到多少个数据表就在C#的编译环境中新建多少个DbSet。DbSet与DbContext是多对一的关系。

简单介绍

首先DbContext和DbSet是属于EF Core下的内容,EF Core是属于ORM(对象关系映射)框架的一种,

作用是:开发者只需操作.NET对象,不需要关注数据库的各种Sql语句,通过对OMR的操作,达到对数据库数据的增删改查的相关操作。

(关于ORM的优缺点,可以参考:https://www.cnblogs.com/OFSHK/p/14519472.html

DbContext类

是域/实体类与数据库之间的桥梁。(可以和数据库通信,管理实体到数据库的映射模型,跟踪实体的更改。)

通过DbContext去连接数据库(和数据库通信),DbContext封装与数据库和数据模型相关的功能(管理实体到数据库的映射模型),依据数据实体状态创建SQL命令,将数据更改保存到数据库中(跟踪实体的更改)。

DbContext 表示与数据库的一次会话,EF Core中增删改查操作都基于该类。

一般情况下,需要创建继承于 DbContext 的自定义类,然后通过该类进行数据库操作。 在实际开发项目中DbContext会结合Repository模式和Unit Of Work模式。

DbSet

用于增删改查操作的实体集 。DbSet是实体对象的集合,提供了实现CRUD的相应方法。

public DbSet<Patient>Patients { get; set; } // DbContext中每一个表加一个DbSet
// 新增几个DbSet<TEntity>属性用来表示实体集合
posted @   抓水母的派大星  阅读(949)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示