EF系列(二)——DbContext 和DbSet

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lnazj/article/details/79066192

当我们创建了实体数据模型”时,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>
展开阅读全文

没有更多推荐了,返回首页