EF中四种方式的增删改查

1.在数据库中创建存储过程

--修改
create proc cp_update_role
(
@id int,
@name varchar(50),
@remark varchar(200)
)
as 
update roles set name=@name,remark=@remark where id=@id

select * from roles

--删除
create proc cp_delete_role
(
@id int
)
as 
delete roles where id=@id

--查询
create proc cp_select_role
(
@name varchar(50)
)
as 
select * from roles where name like'%'+@name+'%'

2.查询方法

方式一

RbacDBEntities db = new RbacDBEntities();
  //方式1 select
    var roles1 = from r in db.Roles
                         where r.Name.Contains("主任")
                         select r;

方式二

var roles2 = db.Roles
                .Where(p => p.Name.Contains("主任"))
                .Select(p => p).ToList();

方式三调用sql语法

string sql = @"select * from roles  where name like '%主任%'";
            db.Database.SqlQuery<Role>(sql);
            db.SaveChanges();

方式四调用存储过程

List<cp_select_role_Result> roles11=  db.cp_select_role("主任").ToList();
 Console.Read();

3.新增方法

方式一

RbacDBEntities db = new RbacDBEntities();
  //方式1 add
   Role r1 = new Role()
            {
                Name = "方式1",
                Remark = "备注1"
            };
            db.Roles.Add(r1);
            db.SaveChanges();

方式二

Role r2 = new Role()
            {
                Name = "方式2",
                Remark = "备注2"
            };
            db.Entry(r2).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();

方式三调用sql语法

 string sql = @"insert into roles values('方式3','备注3')";
            db.Database.ExecuteSqlCommand(sql);
            db.SaveChanges();

方式四调用存储过程

 db.cp_insert_role("方法4", "备注4");
 Console.Read();

4.修改方法

方式一

RbacDBEntities db = new RbacDBEntities();
  //方式1 update
    Role r1 = db.Roles.Find(1074);
            r1.Name = "修改1";
            r1.Remark = "修改备注1";
            db.SaveChanges();

方式二

Role r2 = new Role()
            {
                ID = 1075,
                Name = "修改2",
                Remark = "修改备注2"
            };
            db.Entry(r2).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();

方式三调用sql语法

 string sql = @"update roles set name='修改3',remark='修改备注3' where id=1076";
            db.Database.ExecuteSqlCommand(sql);
            db.SaveChanges();

方式四调用存储过程

  db.cp_update_role(1077, "修改4", "修改备注4");
 Console.Read();

5.删除方法

方式一

RbacDBEntities db = new RbacDBEntities();
  //方式1 delete
    Role r1 = db.Roles.Find(1074);
            db.Roles.Remove(r1);
            db.SaveChanges();

方式二

 Role r2 = new Role()
            {
                ID = 1075
            };
            db.Entry(r2).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();

方式三调用sql语法

 string sql = @"delete roles  where id=1076";
            db.Database.ExecuteSqlCommand(sql);
            db.SaveChanges();

方式四调用存储过程

   db.cp_delete_role(1077);
 Console.Read();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章