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’");

.net mvc数据库操作添加数据的几中方法的更多相关文章

  1. (转载)MySQl数据库-批量添加数据的两种方法

    方法一:使用excel表格 方法二:使用insert语句(FileWriter批量写入) 使用excel表格 1.打开数据表,按照表的字段在excel中添加数据.注意:表中字段名必须和excel中的名 ...

  2. nhibernate操作sql2008数据库(添加数据失败)

    今天遇到一错误困了我一天,如此痛恨,遂记录于此: nhibernate框架+MVC模式搭的项目,添加数据时报错: "could not insert: [KXRMallManage.Mode ...

  3. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  4. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )

    一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...

  5. mysql学习之通过文件创建数据库以及添加数据

    转自:http://blog.163.com/wujicaiguai@126/blog/static/170171558201411311547655/ 1.# 创建数据库语句 create data ...

  6. JDBC数据库之添加数据

    通过JDBC向数据库中添加数据,可以使用INSERT语句实现插入数据SQL语句,对于SQL语句中的参数可以只用占位符"?"代替,然后通过PreparedStatement对其赋值以 ...

  7. MVC 添加数据的三种方法

    1 通过Request接收数据,进行添加 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<d ...

  8. SqlServer 查看数据库、添加数据文件

    一.查看SqlServer实例的数据库列表 1).直接在SSMS(SqlServer Management Studio)管理工具里面 展开实例下面的所有数据库便可查看  2).使用Transact- ...

  9. MySql数据库操作之数据约束

    首先数据库的外键是数据库提供的一种完整性约束.在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见. 个人开发(小型应用).数据库 ...

随机推荐

  1. maven(四):一个基本maven项目的pom.xml配置

    继续之前创建的test项目,一个基本项目的pom.xml文件,通常至少有三个部分 第一部分,项目坐标,信息描述等 <modelVersion>4.0.0</modelVersion& ...

  2. [20171130]关于rman备份疑问.txt

    [20171130]关于rman备份疑问.txt --//前面测试太乱,重新做一些rman as copy相关测试. 1.环境:SCOTT@book> @ &r/ver1PORT_STR ...

  3. HCNA网络技术命令

    1.display version 显示系统软件版本及硬件信息 2.system-view 切换到系统视图 3.quit 切换回用户视图 4.return 从任意非用户视图退回到用户视图 5.sysn ...

  4. 【PAT】B1081 检查密码(15 分)

    水题 #include<cstdio> #include<string.h> #include<ctype.h> #include<algorithm> ...

  5. ubuntu 14.04安装zabbix3.0以及汉化

    文章出处借鉴于 http://www.cnblogs.com/-10086/p/5317524.html 1.下载deb # wget http://repo.zabbix.com/zabbix/3. ...

  6. January 11th, 2018 Week 02nd Thursday

    Live, travel, adventure, bless, and don't be sorry. 精彩地活着,不停地前行,大胆冒险,心怀感激,不留遗憾. Everything we do is ...

  7. JdbcTemolate类的介绍<一>

    JdbcTemolate类的介绍 JdbcTemplate是Spring JDBC的核心类,封装了常见的JDBC的用法,同时尽量避免常见的错误.该类简化JDBC的操作,我们只需要书写提供SQL的代码和 ...

  8. UVA548-Tree(二叉树数组表示)

    Problem UVA548-Tree Accept: 2287  Submit: 13947 Time Limit: 3000 mSec Problem Description You are to ...

  9. Qt 编程指南 3_1 按钮弹窗手动和自动关联示例

    触发的两种模式 connect() 和 on_控件ID_控件函数(参数) 两者优缺点对比: 虽然 Qt 有比较好用的自动关联大法,但自动关联不是万能的,尤其是涉及到多个窗体的时候,比如 A 窗体私有按 ...

  10. solidity fallback函数

    什么是fallback函数: 出处:http://me.tryblockchain.org/blockchain-solidity-fallback.html 回退函数是合约里的特殊函数,没有名字,不 ...