你的位置:首页 > ASP.net教程

[ASP.net教程]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/procSql69       //返回受影响的行数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/procSql74       //返回数据的集合75       List<ActionUrl> dd02 = dbsql.Database.SqlQuery<ActionUrl>("exec getActionUrlId @name", parameters).ToList();//返回查询到的实体集合


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