1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| public class UserInfoDal :IUserInfoDal { OAEntities Db = new OAEntities(); public IQueryable<UserInfo> LoadEntities(System.Linq.Expressions.Expression<Func<UserInfo, bool>> whereLambda) { return Db.UserInfo.Where<UserInfo>(whereLambda); } public IQueryable<UserInfo> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<UserInfo, bool>> whereLambda, System.Linq.Expressions.Expression<Func<UserInfo, s>> orderbyLambda, bool isAsc) { var temp = Db.UserInfo.Where<UserInfo>(whereLambda); totalCount = temp.Count(); if (isAsc) { temp = temp.OrderBy<UserInfo, s>(orderbyLambda).Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize); } else { temp = temp.OrderByDescending<UserInfo, s>(orderbyLambda).Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize); } return temp; }
public bool DeleteEntity(UserInfo entity) { Db.Entry<UserInfo>(entity).State = System.Data.EntityState.Deleted; return Db.SaveChanges() > 0; }
public bool EditEntity(UserInfo entity) { Db.Entry<UserInfo>(entity).State = System.Data.EntityState.Modified; return Db.SaveChanges() > 0; }
public UserInfo AddEntity(UserInfo entity) { Db.Set <UserInfo>().Add(entity); Db.SaveChanges(); return entity; } } ```
##### 由于每个数据操作类都要实现自己的接口(每一个接口都继承了IBaseDal),所以每个数据操作类中都要重复实现CURD以及分页的方法,所以把具体的实现封装到了BaseDal中。
```cs public class BaseDal<T>where T:class,new() { OAEntities Db = new OAEntities(); public IQueryable<T> LoadEntities(System.Linq.Expressions.Expression<Func<T, bool>> whereLambda) { return Db.Set <T>().Where<T>(whereLambda); } public IQueryable<T> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<T, bool>> whereLambda, System.Linq.Expressions.Expression<Func<T, s>> orderbyLambda, bool isAsc) { var temp = Db.Set<T>().Where<T>(whereLambda); totalCount = temp.Count(); if (isAsc) { temp = temp.OrderBy<T, s>(orderbyLambda).Skip<T>((pageIndex - 1) * pageSize).Take<T>(pageSize); } else { temp = temp.OrderByDescending<T, s>(orderbyLambda).Skip<T>((pageIndex - 1) * pageSize).Take<T>(pageSize); } return temp; }
public bool DeleteEntity(T entity) { Db.Entry<T>(entity).State = System.Data.EntityState.Deleted; return Db.SaveChanges() > 0; }
public bool EditEntity(T entity) { Db.Entry<T>(entity).State = System.Data.EntityState.Modified; return Db.SaveChanges() > 0; }
public T AddEntity(T entity) { Db.Set <T>().Add(entity); Db.SaveChanges(); return entity; } }
|