usingSystem;usingSystem.Collections.Generic;usingSystem.Data.Entity.Migrations;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingTest.Data;usingTest.Data.UIData;namespaceTest.Services.Services{/// <summary>/// Home数据访问类/// </summary>publicclassHomeServices{publicstaticSerachDataGetUsers(UISearch us){SerachData sd =newSerachData();using(TestUserEntities db =newTestUserEntities()){var query = db.User.Where(p=>true);//ado.net and where and where//先处理分页操作int pn, pz;//第几页,每页条数if(!int.TryParse(us.page,out pn)){
pn =1;}if(!int.TryParse(us.limit,out pz)){
pn =10;}if(!string.IsNullOrWhiteSpace(us.Name)){
query = query.Where(p=>p.Name.Contains(us.Name));}if(!string.IsNullOrWhiteSpace(us.Role)){
query = query.Where(p => p.Role.Contains(us.Role));}if(!string.IsNullOrWhiteSpace(us.StartDate)){//lmad表达式中不能进行数据类型转换DateTime st = Convert.ToDateTime(us.StartDate);
query = query.Where(p=>p.Birthday>=st);}if(!string.IsNullOrWhiteSpace(us.EndDate)){//lmad表达式中不能进行数据类型转换DateTime et = Convert.ToDateTime(us.EndDate);
query = query.Where(p => p.Birthday <= et);}//取分页数据 使用skip时候必须先排序
sd.count = query.ToList().Count;
sd.list = query.OrderBy(p => p.Age).Skip((pn -1)* pz).Take(pz).ToList();//return query.OrderBy(p=>p.Age).Skip((pn - 1) * pz).Take(pz).ToList();return sd;}}/// <summary>/// 修改/// </summary>/// <param name="us"></param>/// <returns></returns>publicstaticintEditUser(User us){using(TestUserEntities db =newTestUserEntities()){//Users u = db.Users.SingleOrDefault(p=>p.Id==us.Id);
db.User.AddOrUpdate(us);return db.SaveChanges();}}/// <summary>/// 显示数据(修改)/// </summary>/// <param name="id"></param>/// <returns></returns>publicstaticUserGetUsersById(int id){using(TestUserEntities db =newTestUserEntities()){User u = db.User.SingleOrDefault(p=>p.Id==id);return u;}}/// <summary>/// 删除/// </summary>/// <param name="Id"></param>/// <returns></returns>publicstaticintdelUserById(int Id){using(TestUserEntities db =newTestUserEntities()){//删除的实体对象User u = db.User.SingleOrDefault(p => p.Id == Id);if(u!=null){
db.User.Remove(u);}return db.SaveChanges();}}/// <summary>/// 添加/// </summary>/// <param name="us"></param>/// <returns></returns>publicstaticintAddUsers(User us){using(TestUserEntities db =newTestUserEntities()){
db.User.Add(us);return db.SaveChanges();}}/// <summary>/// 总条数/// </summary>/// <param name="us"></param>/// <returns></returns>publicstaticobjectGetUsersCount(UISearch us){using(TestUserEntities db =newTestUserEntities()){var query = db.User.Where(p =>true);//ado.net and where and whereif(!string.IsNullOrWhiteSpace(us.Name)){
query = query.Where(p => p.Name.Contains(us.Name));}if(!string.IsNullOrWhiteSpace(us.Role)){
query = query.Where(p => p.Role.Contains(us.Role));}if(!string.IsNullOrWhiteSpace(us.StartDate)){//lmad表达式中不能进行数据类型转换DateTime st = Convert.ToDateTime(us.StartDate);
query = query.Where(p => p.Birthday >= st);}if(!string.IsNullOrWhiteSpace(us.EndDate)){//lmad表达式中不能进行数据类型转换DateTime et = Convert.ToDateTime(us.EndDate);
query = query.Where(p => p.Birthday <= et);}return query.ToList().Count;}}}}
5. Test.Data中UIData文件夹下的类
5.1 SerachData
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceTest.Data.UIData{publicclassSerachData{publicint count {get;set;}publicList<User> list {get;set;}}}
5.2 UISearch
usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceTest.Data.UIData{/// <summary>/// 请求实体类/// </summary>publicclassUISearch{publicstring Name {get;set;}publicstring Role {get;set;}publicstring StartDate {get;set;}publicstring EndDate {get;set;}publicstring page {get;set;}publicstring limit {get;set;}}}