EF增删查改加执行存储过程和sql语句,多种方法汇总
生活随笔
收集整理的這篇文章主要介紹了
EF增删查改加执行存储过程和sql语句,多种方法汇总
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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的寫(xiě)法
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的寫(xiě)法
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 //此處刪除的對(duì)象不能是自己定義出來(lái)的對(duì)象,只能是數(shù)據(jù)庫(kù)查詢出來(lái)的對(duì)象
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的寫(xiě)法
57 //db.CreateObjectSet<T>().Addach(entity);
58 //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
59 }
60
61 //存儲(chǔ)過(guò)程和sql語(yǔ)句
62 EntityContext dbsql = new EntityContext();
63 SqlParameter[] parameters = new SqlParameter[]{
64 new SqlParameter("@name",SqlDbType.NVarChar)
65 };
66 parameters[0].Value = "test";
67
68 //執(zhí)行strSql/procSql
69 //返回受影響的行數(shù)
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 //執(zhí)行strSql/procSql
74 //返回?cái)?shù)據(jù)的集合
75 List<ActionUrl> dd02 = dbsql.Database.SqlQuery<ActionUrl>("exec getActionUrlId @name", parameters).ToList();//返回查詢到的實(shí)體集合
大致的增刪查改和存儲(chǔ)過(guò)程,執(zhí)行sql語(yǔ)句和執(zhí)行存儲(chǔ)過(guò)程差不多。只有刪除比較特殊!
轉(zhuǎn)載于:https://www.cnblogs.com/RainbowInTheSky/p/4483130.html
總結(jié)
以上是生活随笔為你收集整理的EF增删查改加执行存储过程和sql语句,多种方法汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [书籍分享]0-003.你的灯亮着吗:发
- 下一篇: tmeminifile and tini