一、数据存储层
1、查找分页列表
在写用户列表时遇到了问题,考虑到用户可能会较多的情况需要分页,在数据存储层写的方法是public IQueryableT find pagelistkey(int page size,int pageIndex,out int totalNumber,expression func,bool where,expression func,TKey order,bool asc)。
主要问题就在红色的命令这儿,这个参数不好传递,比如:如果是已身份来排序哪TKey类型是int,如果以注册时间来排序哪TKey类型就是日期时间。如果我在业务逻辑层写一个函数可以支持选择排序类型,那么我没有办法声明一个变量既可以存储TKey为(同国际组织)国际组织的值,又可以存储日期时间的值,那么排序就要写成下面这个样子,感觉不舒服。
//排序开关(订单){案例0://ID升序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.UserID,true ).to list();打破;案例1://ID降序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.UserID,false).to list();打破;第2://注册时间降序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.RegTime,true ).to list();打破;第3://注册时间升序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.RegTime,false).to list();打破;第4://最后登录时间升序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.LastLoginTime,true ).to list();打破;第5://最后登录时间降序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.LastLoginTime,false).to list();打破;default://ID降序_用户。项目=存储库FindPageList((int)pageSize,(int)pageIndex,out _users .总数,_其中,u=u.UserID,false).to list();打破;}后来将TKey设为动态的类型,不论表达式,动态顺序=u=u。用户标识或者u=u.RegTime都可以编译通过,但是一运行就会出错。
前几天没写博客一直在考虑这个问题,后来还是换成用字符串的方式来动态排序。步骤如下:
尼尼微。数据库[右键]-添加-类,输入类名OrderParam
命名空间尼尼微.数据天秤座