文章出處
Test Modify
Test Delete
根據條件查詢
查詢并分組
文章列表
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 }
測試刪除:

1 /// <summary> 2 /// 刪除的測試 3 /// </summary> 4 public Student() 5 { 6 7 this.DeleteBy(u => u.s_ID == 1); 8 }
4. Query
4.1根據條件查詢
1 #region 4.1 根據條件查詢 2 /// <summary> 3 /// 根據條件查詢 4 /// 查詢的結果一般都是集合,所以返回值類型為泛型集合 5 /// </summary> 6 /// <returns></returns> 7 public List<Studnet> GetStudentList(System.Linq.Expressions.Expression<Func<Studnet, bool>> whereQuery) 8 { 9 return db.Studnets.Where(whereQuery).ToList(); 10 } 11 #endregion
4.2根據條件查詢,查詢完之后,還要分組。
1 /// <summary> 2 /// 根據條件查詢,查詢玩之后,還要分組 3 /// </summary> 4 /// <param name="whereQuery"></param> 5 /// <param name="QroupByQuery"></param> 6 /// <returns></returns> 7 public List<Studnet> GetStudentList<Tkey>(System.Linq.Expressions.Expression<Func<Studnet, bool>> whereQuery, System.Linq.Expressions.Expression<Func<Studnet, Tkey>> QroupByQuery) 8 { 9 return db.Studnets.Where(whereQuery).OrderBy(QroupByQuery).ToList(); 10 }
測試根據條件查詢:

1 public Student() 2 { 3 this.GetStudentList(u => u.s_ID == 1 && u.s_Sex == "女"); 4 5 }
測試根據條件查詢,查詢完之后再根據條件分組:

1 public Student() 2 { 3 4 this.GetStudentList(u => u.s_ID >= 1, u => u.s_Sex); 5 }
4.3分頁查詢
1 #region 4.2 分頁查詢 2 /// <summary> 3 /// 分頁查詢 4 /// 先排序,再分頁 5 /// </summary> 6 /// <param name="pageIndex">頁碼</param> 7 /// <param name="pageSize">頁容量</param> 8 /// <param name="orderLambda">排序條件</param> 9 /// <returns></returns> 10 public List<Studnet> GetPagedList<Tkey>(int pageIndex, int pageSize, Expression<Func<Studnet, Tkey>> orderLambda) 11 {
//分頁:一定要注意,Skip之前一定要OrderBy,因為到時候會生成一個RowNum的分頁查詢(通過SQL ServerProfier偵聽到的) 12 return db.Studnets.OrderBy(orderLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); 13 } 14 #endregion
文章列表
全站熱搜