zoukankan      html  css  js  c++  java
  • EF系列——DbContext 和DbSet

    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>
  • 相关阅读:
    测试代码
    内网与外网间通信[转]
    向微软首席执行官史蒂夫·鲍尔默致敬
    Spring Cloud OAuth2
    Docker搭建 MySQL 主从复制
    MySQL-查询结果缓存
    网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放
    Mybatis一对一关联查询
    application.Properties 自定义变量 注解@ConfigurationProperties使用方法
    Hibernate中的脏检查和缓存清理机制
  • 原文地址:https://www.cnblogs.com/linybo/p/13260344.html
Copyright © 2011-2022 走看看