在EF中使用原生SQL,首先要创建上下文对象

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","")
};
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","")
};
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学习笔记03】----------使用原生Sql语句的更多相关文章

  1. entityframework学习笔记--009-使用原生sql语句操作数据

    1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

  2. power desinger 学习笔记三<批量执行sql语句>

    使用sql脚本导入表结构,直接 附带表的 约束.列的注释.真的可以哦 sql语句如下: create table test01 (   ID                   VARCHAR2(10 ...

  3. EF学习笔记(十二):EF高级应用场景

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...

  4. EF学习笔记(十) 处理并发

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(九):异步处理和存储过程 本篇原文链接:Handling Concurrency Concurrency ...

  5. EF学习笔记(十一):实施继承

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...

  6. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  7. MyBatis学习 之 三、动态SQL语句

    目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...

  8. EF学习笔记(九):异步处理和存储过程

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? ...

  9. EF学习笔记(八):更新关联数据

    学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考 ...

随机推荐

  1. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...

  2. 股票k线

    与上一篇文章相比k线图主要的难点 1.tooltip的定制化显示: 当手指触摸手机屏幕上下拖动可能会手指的事件陷入图表无法进行上下拖动 tooltip:{followMouseMove} follow ...

  3. KVC , KVO , KVB

    来源:http://www.cnblogs.com/jay-dong/archive/2012/12/13/2815778.html 熟悉oc语法的同学也许都会懂得这么一点:在oc中,类的成员变量或是 ...

  4. Hibernate的dialect大全

    RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS3 ...

  5. C++学习28 重载>>和<<(输入输出运算符)

    在C++中,系统已经对左移运算符“<<”和右移运算符“>>”分别进行了重载,使其能够用于输入输出,但是输入输出的处理对象只能是系统内建的数据类型.系统重载这两个运算符是以系统类 ...

  6. [ActionScript 3.0] AS3 对XML的操作,创建、删除、增加节点方法

    package { import flash.display.Sprite; /** * @author:Frost.Yen * @E-mail:871979853@qq.com * @create: ...

  7. eclipse设置svn代理

    共2个步骤: 1. 找到C:\Documents and Settings\用户名\Application Data\Subversion的servers文件, 将#http-proxy-host和# ...

  8. HTTP权威指南之连接管理

    TCP连接世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的, TCP/IP 是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集. 客户端应用程序可以打开一条 TCP/IP 连 ...

  9. JAXB注解【转】

    http://blog.csdn.net/lw371496536/article/details/6942045 JAXB(Java API for XML Binding),提供了一个快速便捷的方式 ...

  10. Storm实时计算框架的编程模式

    storm分布式流式计算框架. nimbus:主进程服务(职责就是任务的分配的,程序的分发) supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态) 注意容错 ...