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上下文中,并获取对象的状态管理对象 10 DbEntityEntry<Studnet> entry = db.Entry<Studnet>(stu); 11 12 //把状态改为Added 13 //要引入System.Data.Entity 14 entry.State = System.Data.EntityState.Added; 15 16 //保存到数据库 17 return db.SaveChanges(); 18 19 } 20 #endregion
2.Delete
2.1根据用户ID来删除
1 #region 2.0 根据学生的ID来删除 2 /// <summary> 3 /// 根据学生的ID来删除 4 /// </summary> 5 /// <param name="id"></param> 6 /// <returns></returns> 7 public int Delete(int id) 8 { 9 Studnet stu = new Studnet() { s_ID = id }; 10 //删除传过来的ID 11 //DbEntityEntry<Studnet> stu= db.Studnets.Where(s => s.s_ID == id) as DbEntityEntry<Studnet>; 12 DbEntityEntry<Studnet> entry = db.Entry<Studnet>(stu); 13 //把状态改为deleted 14 entry.State = System.Data.EntityState.Deleted; 15 16 //保存到数据库 17 return db.SaveChanges(); 18 } 19 #endregion
2.2根据条件来删除
其实就是在where方法中传入了一个lambda表达式,而lambda表达式本质上就是一个匿名函数。
1 #region 2.1 根据条件来删除 2 /// <summary> 3 /// 根据条件来删除 4 /// (给出任意条件,然后删除) 5 /// </summary> 6 /// <returns></returns> 7 public int DeleteBy(System.Linq.Expressions.Expression<Func<Studnet, bool>> deleteWhere) 8 {
//查询出要删除的数据 9 List<Studnet> stuList = db.Studnets.Where(deleteWhere).ToList(); 10 //循环删除 11 stuList.ForEach(u => db.Studnets.Remove(u)); 12 13 //保存到数据库 14 return db.SaveChanges(); 15 16 } 17 #endregion
3.Modify
1 #region 3.0 修改 2 /// <summary> 3 /// 修改 4 /// 要告诉程序,哪个属性改了。这里添加一个可变参数数组 5 /// </summary> 6 /// <param name="stu"></param> 7 /// <returns></returns> 8 public int Modify(Studnet stu, params string[] parmeters) 9 { 10 //把对象加入到EF容器,并获取状态管理对象 11 DbEntityEntry<Studnet> entry = db.Entry<Studnet>(stu); 12 13 //对象的状态改为Unchanged 14 entry.State = System.Data.EntityState.Unchanged; 15 foreach (string parms in parmeters) 16 { 17 entry.Property(parms).IsModified = true; 18 } 19 20 return db.SaveChanges(); 21 } 22 #endregion
测试修改:
1 /// <summary> 2 /// 修改的测试 3 /// </summary> 4 public Student() 5 { 6 //把Id为1的学生的名字改为xxxxxxxxxxx 7 Studnet stu = new Studnet() { s_ID=1,s_Name="xxxxxxxxxxx"}; 8 //改哪个实体,改哪个属性 9 this.Modify(stu, "s_Name"); 10 }