using (var db = new Entities())
{
//数据操作
}

新增

string sql = "insert into UserInfo values('zhangsan','123456')";
db.Database.ExecuteSqlCommand(sql);

参数化新增

    sql = "insert into UserInfo values(@UserName,@UserPass)";
var param = new SqlParameter[]
{
new SqlParameter("@UserName","lisi"),
new SqlParameter("@UserPass","123456")
};
db.Database.ExecuteSqlCommand(sql, param);

删除

    sql = "delete from UserInfo where UserName='zhangsan'";
db.Database.ExecuteSqlCommand(sql);

参数化删除

    sql = "delete from UserInfo where UserName=@UserName";
db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi"));

修改

    sql = "update UserInfo set UserName='wangwu'";
db.Database.ExecuteSqlCommand(sql);

查询多条记录

    sql = "select * from UserInfo";
var users = db.Database.SqlQuery<UserInfo>(sql);
foreach (var user in users)
{
ObjectDumper.Write(user);//打印对象
}

总结:操作方式与ADO.NET类似,EF框架自动为我们封装了数据库链接和查询对象。

完整案例:

//1.创建上下文对象
using (var db = new Entities())
{
//增
string sql = "insert into UserInfo values('zhangsan','123456')";
db.Database.ExecuteSqlCommand(sql); //参数化新增
sql = "insert into UserInfo values(@UserName,@UserPass)";
var param = new SqlParameter[]
{
new SqlParameter("@UserName","lisi"),
new SqlParameter("@UserPass","123456")
};
db.Database.ExecuteSqlCommand(sql, param); //删
sql = "delete from UserInfo where UserName='zhangsan'";
db.Database.ExecuteSqlCommand(sql); //参数化删除
sql = "delete from UserInfo where UserName=@UserName";
db.Database.ExecuteSqlCommand(sql, new SqlParameter("@UserName", "lisi")); //改
sql = "update UserInfo set UserName='wangwu'";
db.Database.ExecuteSqlCommand(sql); //原生sql查询
sql = "select * from UserInfo";
var users = db.Database.SqlQuery<UserInfo>(sql);
foreach (var user in users)
{
ObjectDumper.Write(user);//打印对象
}
}

在EF中使用原生SQL,首先要创建上下文对象的更多相关文章

  1. EF中执行原生sql与使用Local获取本地数据

    使用DbSet的Local属性可以访问当前context中被追踪且没有被标记为删除的实体(内存中的数据) using (var context = new BloggingContext()) { / ...

  2. django中使用原生sql

    在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖 ...

  3. Django中执行原生SQL语句【新编辑】

    参考我的个人博客 这部分迁移到了个人博客中:Django中执行原生SQL语句 这里需要补充一下,还有一个extra方法: ret = models.Student.objects.all().extr ...

  4. thinkPHP框架中执行原生SQL语句的方法

    这篇文章主要介绍了thinkPHP框架中执行原生SQL语句的方法,结合实例形式分析了thinkPHP中执行原生SQL语句的相关操作技巧,并简单分析了query与execute方法的使用区别,需要的朋友 ...

  5. 在ABP中通过EF直接执行原生Sql的解决方案

    一般情况下,使用EF中的查询语法和方法语法可以帮助我们完成绝大部分业务,但是也有特殊的情况需要直接执行Sql语句.比如,我们的业务过于复杂繁琐,或是有些业务使用EF操作时比较复杂,但是使用Sql时会很 ...

  6. EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

    在用.net core进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EF Core 和EF6 的原生sql查询存在很大的差异. 在EF6中我们用SqlQuery和Exe ...

  7. C# 在EF中直接运行SQL命令

    相信不少使用EF的同志们已经知道如何在EF中运行SQL命令了.我在这里简单总结下,希望对大家学习EF有所帮助! 在 EF第一个版本(.NET 3.5 SP1)中,我们只能通过将ObjectContex ...

  8. django系列5.4--ORM中执行原生SQL语句, Python脚本中调用django环境

    ORM执行原生sql语句 在模型查询API不够用的情况下,我们还可以使用原始的SQL语句进行查询. Django 提供两种方法使用原始SQL进行查询:一种是使用raw()方法,进行原始SQL查询并返回 ...

  9. 在Hibernate中使用原生SQL语句

    使用原生SQL查询必须注意:程序必须选出所有的数据列才可被转换成持久化实体.假设实体在映射时有一个<many-to-one../>的关联指向另外一个实体,则SQL查询中必须返回该<m ...

随机推荐

  1. linux100讲——80 系统函数库介绍

    1.系统自建了函数库,可以在脚本中引用 /etc/init.d/functions 2.自建函数库 使用 source 函数脚本文件 “导入”函数 3. vim /etc/init.d/functio ...

  2. 0级搭建类013-CentOS 8.x 安装

    CentOS 8 操作系统安装

  3. 小白的java学习之路 “ 字符串”

    定一个字符串可以使用string类和stringbuffer类. string类提供了大量的操作字符串的方法,常用的如下: 获得字符串的长度: length(). 比较字符串:equals(). 链接 ...

  4. jQuery---scrollTop和scrollLeft的方法

    scrollTop和scrollLeft的方法 <script src="jquery-1.12.4.js"></script> <script> ...

  5. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  6. 《深入理解java虚拟机》读书笔记六——第七章

    第七章 虚拟机类加载机制 1.类加载的时机 虚拟机的类加载机制: 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验.转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这 ...

  7. PYthon之路Day12

    生成器 核心:生成器的本质就是一个迭代器 程序员自己写的一种迭代器 作用:节省空间 生成器可以使用for进行遍历 生成器编写方式: 基于函数编写 def func():    print('这是一个函 ...

  8. Ubuntu 18.04 怎么安装Gnome Tweak Tool

    地址:https://jingyan.baidu.com/article/86f4a73ebd6c9437d7526963.html 终端键入命令:[sudo add-apt-repository u ...

  9. 题解 CF755A 【PolandBall and Hypothesis】

    直接从1开始枚举不就行了... 思路如下: 1.先定义一个判断是不是质数的函数 int pd(int n) { if(n==1)return true; if(n==2)return false; f ...

  10. 初识消息队列--ActiveMq

    消息队列 即MessageQueue,是一种消息中间件,在遇到系统请求量比较大的情况下,导致请求堆积过多无法及时返回,可以通过它进行异步的消息处理,从而缓解系统压力. ActiveMq ActiveM ...