EF增删查改加执行存储过程和sql语句,多种方法汇总

 1 ActionUrl c = new ActionUrl() { ActionName="test", RequestUrl="/123/123", SubTime=DateTime.Now };
 2             //增
 3             using (EntityContext db = new EntityContext())
 4             {
 5
 6                 /*方法1*/
 7                 db.ActionUrls.Add(c);
 8                 db.SaveChanges();
 9                 /*方法2*/
10                 db.Set<ActionUrl>().Attach(c);
11                 db.Entry<ActionUrl>(c).State = EntityState.Added;
12                 db.SaveChanges();
13                 //return c;
14                 /*方法3*/
15                 //EF4.0的写法
16                 //db.CreateObjectSet<T>().AddObject(entity);
17
18             }
19             //查
20             using (EntityContext db = new EntityContext())
21             {
22                 c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
23             }
24             //改
25             using (EntityContext db = new EntityContext())
26             {
27                 /*方法1*/
28                 c.ActionName = "test001";
29                 db.ActionUrls.Attach(c);
30                 db.Entry<ActionUrl>(c).State = EntityState.Modified;
31                 db.SaveChanges();
32                 /*方法2*/
33                 c.ActionName = "test002";
34                 db.SaveChanges();
35                 //return db.SaveChanges() > 0;
36                 /*方法3*/
37                 //EF4.0的写法
38                 //db.CreateObjectSet<T>().Addach(entity);
39                 //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
40             }
41             //删
42             using (EntityContext db = new EntityContext())
43             {
44                 /*方法1*/
45                 //此处删除的对象不能是自己定义出来的对象,只能是数据库查询出来的对象
46                 c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
47                 db.ActionUrls.Remove(c);
48                 db.SaveChanges();
49                 /*方法2*/
50                 //c = db.ActionUrls.Where(t => t.ActionName == "test").FirstOrDefault();
51                 db.Set<ActionUrl>().Attach(c);
52                 db.Entry<ActionUrl>(c).State = EntityState.Deleted;
53                 db.SaveChanges();
54                 //return db.SaveChanges() > 0;
55                 /*方法3*/
56                 //EF4.0的写法
57                 //db.CreateObjectSet<T>().Addach(entity);
58                 //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
59             }
60
61             //存储过程和sql语句
62             EntityContext dbsql = new EntityContext();
63             SqlParameter[] parameters = new SqlParameter[]{
64                 new SqlParameter("@name",SqlDbType.NVarChar)
65             };
66             parameters[0].Value = "test";
67
68             //执行strSql/procSql
69             //返回受影响的行数
70             int i = dbsql.Database.ExecuteSqlCommand("exec getActionUrlId @name", parameters);
71
72             List<ActionUrl> dd01 = dbsql.Database.SqlQuery(typeof(ActionUrl), "exec getActionUrlId @name", parameters).Cast<ActionUrl>().ToList();
73             //执行strSql/procSql
74             //返回数据的集合
75             List<ActionUrl> dd02 = dbsql.Database.SqlQuery<ActionUrl>("exec getActionUrlId @name", parameters).ToList();//返回查询到的实体集合

大致的增删查改和存储过程,执行sql语句和执行存储过程差不多。只有删除比较特殊!

时间: 2024-10-14 07:52:06

EF增删查改加执行存储过程和sql语句,多种方法汇总的相关文章

EF增删查改基类

/// <summary> /// EF DAL CURD基类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T : class, new() { /// <summary> /// 上下文网关 /// </summary> protected SchoolEntities db = n

EF增删查改(三)------终极版

1.Add 1 #region 1.1 新增学生信息(定义成Int类型,返回受影响的行数) 2 /// <summary> 3 /// 新增学生信息 4 /// </summary> 5 /// <param name="stu"></param> 6 /// <returns></returns> 7 public int Add(Studnet stu) 8 { 9 //把对象加入到EF上下文中,并获取对象的状

三种记录 MySQL 所执行过的 SQL 语句的方法

程式 Debug 有時後從前面第一行追起來很辛苦(程式碼太多或 compile 過), 另一種做法就是從後面追起來, 反正最後寫入的是 DB, 那就從 DB 開始往前推, 所以就是要抓程式是執行哪些 SQL 語法.(以下只以 MySQL 為主) 之前用過的追蹤法是用 tcpdump 或 wireshark 聽 3306 port,這個太苦, 就不再多說~ MySQL 有幾種方法可以用, 將以挑喜歡的其中一種, 加入 /etc/mysql/my.cnf(debian), 再 restart mys

一套手写ajax加一般处理程序的增删查改

倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: using System; namespace Ajax.Model { /// <summary> /// SM_Class:实体类(属性说明自动提取数据库字段的描述信息) /// </summary> [Serializable] public partial class SM_C

EF实现增删查改功能

In the previous tutorial you created an MVC application that stores and displays data using the Entity Framework and SQL Server LocalDB. In this tutorial you'll review and customize the CRUD (create, read, update, delete) code that the MVC scaffoldin

JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql

JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` int(3) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 2.工程结构    

4.CRUD Operations Using the Repository Pattern in MVC【在MVC中使用仓储模式进行增删查改】

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 上一篇文章,讲到了MVC中基本的增删查改,这篇文章,我会继续说到,使用仓储模式,进行增删查改. 什么是仓储模式呢,我们先来了解一下:  仓储模式是为了在程序的数据访问层和业务逻辑层之间创建一个抽象层,它是一种数据访问模式,提供了一种更松散耦合的数据访问方法.我们把创建数据访问的逻辑代码写在单独的类中,或者类库中

实现基本的增删查改功能

1. In the previous tutorial you created an MVC application that stores and displays data using the Entity Framework and SQL Server LocalDB. In this tutorial you'll review and customize the CRUD (create, read, update, delete) code that the MVC scaffol

CRM框架小知识以及增删查改逻辑代码

CRM:客户关系管理系统 总体框架 MVC4 + EF5 + Autofac 替代工厂层连接各个层之间的关系 基本框架 01实体层 02仓储层 03业务层 04公共层 05UI 用MVC框架 ------------------------------------------ 01实体层 EF 01实体层 中 为了方便模型注解 用T4模板分别生成 EF实体类的部分类 和 贴标签的类 EF实体类的部分类 using System.ComponentModel; using System.Compo