Entity framework,(Expression> sortKeySelector)这个排序怎么传参数?

BeerGates 2018-12-07 01:53:37
以下是成员方法原型

public IEnumerable<T> GetPage<TKey>(Expression<Func<T, bool>> filter, Expression<Func<T, TKey>> sortKeySelector, int pageIndex, int pageSize, out int recordCount, bool isAsc = true)


不能以order=>order.ID 这样传入 ?
...全文
876 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cole-小助教 2021-05-25
  • 打赏
  • 举报
回复
void Main() { DumpExp(r => new { r.EmployeeID, r.Name }); } public void DumpExp<TKey>(Expression<Func<Foo, TKey>> expr) { expr.Dump(); } public class Foo { public string EmployeeID; public string Name; }
zwj_1215 2020-04-09
  • 打赏
  • 举报
回复
排序那,麻烦再详细一下,还是没有看懂
BeerGates 2018-12-08
  • 打赏
  • 举报
回复
引用 5 楼 张天星 的回复:
public IEnumerable<T> GetPage<TKey>(Expression<Func<T, bool>> filter, Expression<Func<T, TKey>> sortKeySelector, int pageIndex, int pageSize, out int recordCount, bool isAsc = true)
刚才确认了一下,filter是bool值,传入你需要查找的条件,m=>m.ID==id,或者m=>Age<age,如此种种,大于小于等于的判断。 sortKeySelector是TKey,需要传入你的字段,比如m=>m.Name,说明你需要排序的关键字是Name,按照名字排序,或者你输入m=>m.ID,按照ID排序,如此设置你需要排序的字段。 pageIndex是你的页数, pageSize是你的页大小(一页多少数据),两个数据就决定了你从第几个数据获取(比如:第五页,一页总共20个数据)。 recordCount是所有数据的数量。结合上面的页数和单页大小,可以知道你的总数,总共多少页,单页多少个,当前第几页。 isAsc 是排序规则,asc是正序,=true是正序,=false是倒序。这里是说你不写也可以,默认正序。 这是一个分页查询方法。
p=>p.xxx 这样传入错误,filter可以
张天星 2018-12-08
  • 打赏
  • 举报
回复
public IEnumerable<T> GetPage<TKey>(Expression<Func<T, bool>> filter, Expression<Func<T, TKey>> sortKeySelector, int pageIndex, int pageSize, out int recordCount, bool isAsc = true)

刚才确认了一下,filter是bool值,传入你需要查找的条件,m=>m.ID==id,或者m=>Age<age,如此种种,大于小于等于的判断。
sortKeySelector是TKey,需要传入你的字段,比如m=>m.Name,说明你需要排序的关键字是Name,按照名字排序,或者你输入m=>m.ID,按照ID排序,如此设置你需要排序的字段。
pageIndex是你的页数,
pageSize是你的页大小(一页多少数据),两个数据就决定了你从第几个数据获取(比如:第五页,一页总共20个数据)。
recordCount是所有数据的数量。结合上面的页数和单页大小,可以知道你的总数,总共多少页,单页多少个,当前第几页。
isAsc 是排序规则,asc是正序,=true是正序,=false是倒序。这里是说你不写也可以,默认正序。

这是一个分页查询方法。
张天星 2018-12-08
  • 打赏
  • 举报
回复
引用 3 楼 张天星 的回复:
filter 应该是一个比较方法,m=>m.ID == id;
sortKeySelector 这个就不是比较了看不懂key这个应该怎么传

你试试m=>m.Name 就这样看看行不行,实在不行,就只能打开帮助看看了
张天星 2018-12-08
  • 打赏
  • 举报
回复
filter 应该是一个比较方法,m=>m.ID == id;
sortKeySelector 这个就不是比较了看不懂key这个应该怎么传
threenewbee 2018-12-08
  • 打赏
  • 举报
回复
order=>order.ID是那个selector的参数 第一个参数类似where的,应该是order=>order.ID == xxx
  • 打赏
  • 举报
回复
你看OrderBy的参数啊……where的是返回bool,orderby的不是
BeerGates 2018-12-07
  • 打赏
  • 举报
回复
引用 1 楼 tangyanzhi1111 的回复:
Expression封装了 一个入参为T,出参为bool 的 表达式 你也搞一个同样的,传进来就行了
朋友,能演示一下吗? 刚接触没久
江湖评谈 2018-12-07
  • 打赏
  • 举报
回复
Expression封装了 一个入参为T,出参为bool 的 表达式 你也搞一个同样的,传进来就行了

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧