Intern Day78

个人理解

本人的理解就是: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>属性用来表示实体集合
原文地址:https://www.cnblogs.com/OFSHK/p/14736030.html