EF增删查改加执行存储过程和sql语句,多种方法汇总
ActionUrl c = new ActionUrl() { ActionName="test", RequestUrl="/123/123", SubTime=DateTime.Now };
//增
using (EntityContext db = new EntityContext())
{
/*方法1*/
db.ActionUrls.Add(c);
db.SaveChanges();
/*方法2*/
db.Set<ActionUrl>().Attach(c);
db.Entry<ActionUrl>(c).State = EntityState.Added;
db.SaveChanges();
//return c;
/*方法3*/
//EF4.0的写法
//db.CreateObjectSet<T>().AddObject(entity);
}
//查
using (EntityContext db = new EntityContext())
{
c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
}
//改
using (EntityContext db = new EntityContext())
{
/*方法1*/
c.ActionName = "test001";
db.ActionUrls.Attach(c);
db.Entry<ActionUrl>(c).State = EntityState.Modified;
db.SaveChanges();
/*方法2*/
c.ActionName = "test002";
db.SaveChanges();
//return db.SaveChanges() > 0;
/*方法3*/
//EF4.0的写法
//db.CreateObjectSet<T>().Addach(entity);
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
//删
using (EntityContext db = new EntityContext())
{
/*方法1*/
//此处删除的对象不能是自己定义出来的对象,只能是数据库查询出来的对象
c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
db.ActionUrls.Remove(c);
db.SaveChanges();
/*方法2*/
//c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
db.Set<ActionUrl>().Attach(c);
db.Entry<ActionUrl>(c).State = EntityState.Deleted;
db.SaveChanges();
//return db.SaveChanges() > 0;
/*方法3*/
//EF4.0的写法
//db.CreateObjectSet<T>().Addach(entity);
//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
}
//存储过程和sql语句
EntityContext dbsql = new EntityContext();
SqlParameter[] parameters = new SqlParameter[]{
new SqlParameter("@name",SqlDbType.NVarChar)
};
parameters[].Value = "test";
//执行strSql/procSql
//返回受影响的行数
int i = dbsql.Database.ExecuteSqlCommand("exec getActionUrlId @name", parameters);
List<ActionUrl> dd01 = dbsql.Database.SqlQuery(typeof(ActionUrl), "exec getActionUrlId @name", parameters).Cast<ActionUrl>().ToList();
//执行strSql/procSql
//返回数据的集合
List<ActionUrl> dd02 = dbsql.Database.SqlQuery<ActionUrl>("exec getActionUrlId @name", parameters).ToList();//返回查询到的实体集合
大致的增删查改和存储过程,执行sql语句和执行存储过程差不多。只有删除比较特殊!
EF增删查改加执行存储过程和sql语句,多种方法汇总的更多相关文章
- EF各版本增删查改及执行Sql语句
自从我开始使用Visual Studio 也已经经历了好几个版本了,而且这中间EF等框架的改变也算是比较多的.本篇文章记录下各个版本EF执行Sql语句和直接进行增删查改操作的区别,方便自己随时切换版本 ...
- MVC学习之路(1) EF 增删查改合集
首先再Model中创建一个类[WMBlogDB] public class WMBlogDB : DbContext { //连接字符串. public WMBlogDB() : base(" ...
- EF增删查改(三)------终极版
1.Add #region 1.1 新增学生信息(定义成Int类型,返回受影响的行数) /// <summary> /// 新增学生信息 /// </summary> /// ...
- EF增删查改基类
/// <summary> /// EF DAL CURD基类 /// </summary> /// <typeparam name="T">& ...
- 三种记录 MySQL 所执行过的 SQL 语句的方法
程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 ...
- Entity Framework(三)---FluentAPI和增删查改
一.FluentAPI: 1.基本配置: namespace ConsoleApp14.ModelConfig { public class PersonConfig: EntityTypeConfi ...
- 一套手写ajax加一般处理程序的增删查改
倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...
- 3.EF 6.0 Code-First实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-entity-framework-5-0-code- ...
- JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql
JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, ...
随机推荐
- shell入门-grep-3-egrep
grep -E == egrep [root@wangshaojun ~]# grep --color 'r\?o' 1.txt == egrep --color 'r?o' 1.txt ^C[roo ...
- [xjtu21]wmq的午餐 计数问题
http://oj.xjtuacm.com/problem/21/ 对13进行分析,每种价格出现的次数: $(C_m^1 + C_m^2 + ... + C_m^m)(C_{n - m}^0 + C_ ...
- CentOS 6.5 and Ubuntu 14.04 使用外部邮箱发送邮件
我们可以使用外部邮箱(163,126,gmail,139等等)为我们发邮件 for CentOS 6.5 yum -y install mailx vi /etc/mail.rc 在文件的末行添加以下 ...
- GIT 图形化操作指南
Git操作指南(2) -- Git Gui for Windows的建库.克隆(clone).上传(push).下载(pull).合并 关于linux上建库等操作请看文章: http://hi.bai ...
- Getting the System Version
#include <windows.h>#include <tchar.h>#include <stdio.h>#include <strsafe.h> ...
- Struts2学习第四课 通过Aware接口获取WEB资源
使用XxxAware接口 看代码: package logan.struts2.study; import java.util.Map; import org.apache.struts2.inter ...
- linux下sed批量替换文件内容
在linux超级终端下编辑文档是件比较麻烦的事情,下面简单介绍一下如何在linux下批量替换文件内容 linuxsed 批量替换多个文件中的字符串 格式: sed -i "s/查找字段/替换 ...
- Dijkstra 路径规划 C#
示例无向图如下:(起始点为v0) 邻接矩阵为: 注意:其中没有连接的边和自己到自己的点权值用10000表示. 代码: static void Main(string[] args) { , , , , ...
- Haproxy+Keepalived高可用配置
基本实验 参考文档 博文地址 环境拓扑 下面使我们要实现的负载均衡集群图示 主节点地址: 92.0.0.11 从节点地址: 92.0.0.12 共享虚拟地址:92.0.0.8 下面是负载均衡集群可能出 ...
- MySQL 杂项
关于MySQL mysql连接时的--prompt 和 --delimiter 参数是用来设置什么的? 设置提示符和分隔符 mysql查看创建数据库时的字符集命令? SHOW CREATE DATAB ...