* DbContext API 的一些关键点
*
* db.Categories.Find() - 通过传递主键值作为参数查找实体,复合主键就传多个参数
* db.Categories.Add() - 把一个新增的实体添加到上下文
* db.Categories.Attach() - 把一个已存在的实体添加到上下文
* db.Entry(entity).State = System.Data.EntityState.Modified - 修改实体状态
* db.Categories.AsNoTracking() - 不被 Context 跟踪,通过 NoTracking 获取的实体,其状态是 Detached 状态。当仅仅是获取数据的时候可以用,有助于提高效率
* 属性的相关操作,当属性改变时,会自动监测实体状态,即 IsModified = true
* db.Entry(product).Property(p => p.Name).CurrentValue
* db.Entry(product).Property("Name").CurrentValue
* 直接加载(Eager loading)的方法
* db.Categories.Include(p => p.Products.First())
* db.Categories.Include(p => p.Products)
* db.Entry(product).Reference(p => p.Category).Load()
* 使用 sql
* db.Categories.SqlQuery("select * from Categories").ToList() // 有实体的情况
* db.Database.SqlQuery<string>("select Name from Categories").ToList(); // 无实体的情况
* db.Database.ExecuteSqlCommand(sql); // 直接执行 sql
DbContext API 的一些关键点