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="data source=LINA;initial catalog=WMS;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> </configuration>