当我们创建了实体数据模型”时,EDM包含了SchoolDBEntities,SchoolDBEntities是从System.Data.Entity.DbContext类派生的类,如下所示。派生DbContext的类SchoolDBEntities在实体框架中被称为上下文类。

DbContext是域或实体类与数据库之间的桥梁。
功能:

查询:将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。
更改跟踪:跟踪实体在从数据库查询后发生的更改。
持久化数据:根据实体的状态对数据库执行插入,更新和删除操作。
缓存:默认提供一级缓存。它存储在上下文类生命周期中已经被检索的实体。
管理关系:在Db-First或Model-First方法中使用CSDL,MSL和SSDL管理关系,并以Code-First方法使用流畅的API配置。
对象实现:将来自数据库的原始数据转换为实体对象。

DbContext类的方法:
Entry:获取DbEntityEntry给定的实体。该条目提供访问更改实体的跟踪信息和操作。
SavaChange:对已添加,已修改或已删除状态的实体的数据库执行INSERT,UPDATE或DELETE命令。
SaveChangesAsync: SaveChanges()的异步方法
Set: 创建一个DbSet可以用来查询和保存实例的TEntity。
OnModelCreating 重写此方法以进一步配置通过DbSet派生上下文中属性中公开的实体类型按惯例发现的模型。

DbSet:表示可用于创建,读取,更新和删除操作的实体集。

DbSet 常用的方法:
Add:将给定的实体添加到添加状态的上下文中。当保存更改时,添加状态中的实体将被插入到数据库中。保存更改后,对象状态将更改为“未更改”。

Remove:将给定的实体标记为已删除。保存更改后,实体将从数据库中删除。在调用此方法之前,实体必须存在于其他某个状态的上下文中。

打开我们的配置文件,通过connectionString建立数据库与实体间的连接和对应关系。

<?xml version="1.0" encoding="utf-8"?>
<configuration><configSections><!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --><section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></configSections><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><entityFramework><defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"><parameters><parameter value="mssqllocaldb" /></parameters></defaultConnectionFactory><providers><provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /></providers></entityFramework><connectionStrings><add name="WMSEntities" connectionString="metadata=res://*/wms.csdl|res://*/wms.ssdl|res://*/wms.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=LINA;initial catalog=WMS;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
</configuration>

EF系列(二)——DbContext 和DbSet相关推荐

  1. 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~二 DBContext实例中,表实体对象是怎么被加入的...

    一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...

  2. 架构系列二:使用Nginx+tomcat实现集群部署

    架构系列二:使用Nginx+tomcat实现集群部署 一.环境介绍  VM1:Ubuntu-S100 IP:192.168.130.128 部署Tomcat应用及Nginx  VM2:Ubuntu-S ...

  3. 配置EF Core的DbContext

    配置创建的 DbContext 这篇文章演示用于配置基本模式DbContext通过DbContextOptions连接到使用特定的 EF Core提供程序和可选行为的数据库. 设计时 DbContex ...

  4. Linux快速入手系列二( 文本处理 )

    更多精彩文章点击 -> 我的学习小站 & 更多好玩点击 -> 技术杂谈 文本编辑神器-Vim vim的三种操作模式 vim有三种操作模式,分别是命令模式(Command mode) ...

  5. 为什么选择 NetApp EF 系列阵列?

    获得更快.更具行动力的结果 大数据分析.高性能计算.要求苛刻的数据库.NetApp EF 系列全闪存阵列专为当今巨大的工作负载(以及未来更加严峻的工作负载)而设计. EF 系列阵列将令人惊叹的 IOP ...

  6. 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装

    相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+klanaV5.4.2+x-p ...

  7. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  8. 人工智能算法通俗讲解系列(二):逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 今天,我们介绍的机器学习算法叫逻辑回归.它英语名称是Logistic Regression,简称LR. 跟之前一样,介绍这个算 ...

  9. 【算法系列 二】Stack

    为什么80%的码农都做不了架构师?>>>    栈应用的场景: 1.括号问题 2.后缀表达式 3.深度优先遍历 4.保存现场 1. 给定字符串,仅由"()[]{}" ...

  10. 《CDN 之我见》系列二:原理篇(缓存、安全)

    2019独角兽企业重金招聘Python工程师标准>>> <CDN之我见>共由三个篇章组成,分为原理篇.详解篇和陨坑篇.本篇章适合那些从未接触过.或仅了解一些 CDN 专业 ...

最新文章

  1. 怎么让代码不再臃肿,写的像诗一样优雅
  2. 逆向工程、协议分析和漏洞研究
  3. WebRTC的优缺点
  4. 深入浅出深度学习(四)概率统计基础
  5. 初识ABP vNext(2):ABP启动模板
  6. 3500 yuan to php,350 CNY to PHP Currency Converter - 人民币 菲律宾比索 汇率兑换
  7. Netty源码学习(零)前言
  8. 五分钟快速过完Verilog HDL基本概念(1)
  9. Oralce 导入dpm 文件数据
  10. vi/vim编辑器使用方法详解
  11. 阿里银泰集团物业预付费系统项目的设计与应用
  12. 什么是微信WXID数据?
  13. C# WPF – 利用“Attached Property” 把 RoutedEvent 接上 ICommand
  14. 领域模型 PO、VO、DAO、BO、DTO、POJO
  15. 502粘到手上变硬了怎么办_502胶水粘手如何处理?五种小技巧帮你轻松去胶!
  16. 微信图片过期怎么办?如何查看微信过期图片?3步即可
  17. List和Map集合遍历的3种方式
  18. php程序检测不到vc9,XAMPP2016中文精简版启动失败 缺少运行库解决办法
  19. 跨境电商「独角兽」融资40亿+,这家公司是怎么做增长的?
  20. merger oracle,merger oracle 函数

热门文章

  1. C语言初阶-C语言中static的用法
  2. 环保设施运行在线监控 数采仪环保工况监测终端
  3. MIPS微程序CPU设计
  4. 博主文章导航(分门别类,实时更新,永久置顶)
  5. 欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。
  6. 钉钉的自动打卡上下班辅助android软件
  7. Linux top命令参数及使用方法详解
  8. 1)java基本语法
  9. SpringCloud微服务项目实战 - 2.App登录及网关
  10. 平安科技寿险金服面试