1. Defining sets on a derived context

1) DbSet属性:指定集合为Entity类型

2) IDbSet属性

3) 只读set属性

public IDbSet<Unicorn> Unicorns{get{return Set<Unicorn>();}

2. 利用主键查找实体  
   DbSet的Find方法,如果用主键在上下文中查找不到实体,就会到数据库中查询。  
   1)通过主键查找实体  
      var unicorn=context.Unicorns.Find(3);//查询数据库  
      var unicornAgain=context.Unicorns.Find(3);//从当前上下文中返回相同的实例(没有查询数据库)  
   2) 通过主键和外键查找实体  
var lady = context.LadiesInWaiting.Find(3, "The EF Castle");

3. 实体状态和保存  
   EntityState:Added、Unchanged、Modified、Deleted和Detached  
   1) 插入一个新的实体到上下文  
当调用SaveChanges()才能插入到数据库中。  
var unicorn = new Unicorn { Name = "Franky", PrincessId = 1};  
    context.Unicorns.Add(unicorn);//添加到上下文中  
    context.SaveChanges();//插入到数据库中

另一种插入方法:  
var unicorn = new Unicorn { Name = "Franky", PrincessId = 1};  
     context.Entry(unicorn).State = EntityState.Added;  
     context.SaveChanges();

在当前实体的关联实体中添加新的对象:  
// Add a new princess by setting a reference from a tracked unicorn  
var unicorn = context.Unicorns.Find(1);  
      unicorn.Princess = new Princess { Name = "Belle" };  
// Add a new unicorn by adding to the collection of a tracked princess  
var princess = context.Princesses.Find(2);  
      princess.Unicorns.Add(new Unicorn { Name = "Franky" });  
      context.SaveChanges();

4.  DbContext中的T-SQL查询  
     1) SQL语句查询实体  
var unicorns = context.Unicorns.SqlQuery(  
"select * from Unicorns").ToList();  
     2) SQL语句查询非实体类型  
var unicornNames = context.Database.SqlQuery<string>(  
"select Name from Unicorns").ToList();  
     3) 执行SQL命令  
       context.Database.ExecuteSqlCommand(  
"update Unicorns set Name = ’Franky’ where Name = ’Beepy’");

最新文章

  1. 吐槽CodeDom
  2. block的常见用法
  3. zookeeper是什么?原理是什么?【转】
  4. 使用jigdo下载debian [windows环境下]
  5. Python Mysql 篇
  6. 【网络编程】——connect函数遇见EINTR的处理
  7. ArcGIS的许可文件问题
  8. 《Hadoop基础教程》之初识Hadoop
  9. 使用GCD
  10. flex 4 写皮肤
  11. WordPress插件制作教程(七): 插件函数之过滤器(Filter)函数
  12. Linux解决xhost: unable to open display
  13. VMware workstation 10.0的永久key
  14. IOS开发-UI学习-UIWebView,简单浏览器的制作
  15. 《 iPhone X ARKit Face Tracking 》
  16. Linux中普通用户配置sudo权限(带密或免密)
  17. LeetCode(37): 每k个一组翻转链表
  18. cxf动态调用外部web service 报告异常java.lang.NoSuchFieldErr
  19. swiper一组图片,点击图片出现中间,看效果
  20. Debian 给非 ROOT 用户添加 sudoer 权限

热门文章

  1. 用Python实现数据结构之队列
  2. .NET Core tasks.json 简介
  3. 使用navicat 连接mysql出现1251错误
  4. Nginx主程序使用介绍
  5. 转:git合并冲突解决方法
  6. Redis后台监控与管理CacheCloud
  7. c#中开发ActiveX的学习笔记
  8. 洛谷 P1032 字串变换
  9. php获取两个数组相同的元素(交集)以及比较两个数组中不同的元素(差集)
  10. ROS教程2 编写简单的消息发布器和订阅器 (C++ catkin)