请大神帮忙,这句话的意思》》》

xBeej 2016-12-29 12:17:20
ParallelQuery<EB_V_VIP> pq = MDB<EB_V_VIP>.Mdb.AsParallel().Where(MemoryDBHelper.makeexp<EB_V_VIP>(vipcondition).Compile()).Join(MDB<EB_V_VIP_ENDOFDAY>.Mdb.AsParallel().Where(MemoryDBHelper.makeexp<EB_V_VIP_ENDOFDAY>(sales).Compile()).GroupBy(s => s.EB_VIPCODE).Where(amountfunc.And(countfunc).Compile()), a => a.XF_VIPCODE, b => b.Key, (a, b) => a);
这句话表达了什么意思???

EB_V_VIP 是数据库视图表,
EB_V_VIP_ENDOFDAY同上,

EB_VIPCODE是表中的字段,
XF_VIPCODE同上
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2016-12-29
  • 打赏
  • 举报
回复
拉姆达表达式 Where,等同于sql的where条件 Join,就是连接(full join) GroupBy,就是sql的group by
  • 打赏
  • 举报
回复
AsParallel是将枚举展开时采用并行方式,一般用于数据量大,能提高效率 var predicate = MemoryDBHelper.makeexp<EB_V_VIP>(vipcondition).Compile(); 其实提出来给变量比较好,这句看makeexp名字应该就是创建Linq表达式树,然后调用Expression.Complice()将它编译为相应类型的委托,比如 比如 makeexp返回的是Expression<Func<T, bool>>,那么.Compile()之后就变成了Func<T, bool>,就是.Where()的条件了
  • 打赏
  • 举报
回复
创建表达式树并动态编译成Func<T, bool>,作为Where条件 不过还是应该把内层的提出来用变量的好
xBeej 2016-12-29
  • 打赏
  • 举报
回复
我知道是lamdab表达式,我是不明白它ParallelQuery<EB_V_VIP> pq = MDB<EB_V_VIP>.Mdb.AsParallel().Where(MemoryDBHelper.makeexp<EB_V_VIP>(vipcondition).Compile()).Join(MDB<EB_V_VIP_ENDOFDAY>.Mdb.AsParallel().Where(MemoryDBHelper.makeexp<EB_V_VIP_ENDOFDAY>(sales).Compile()).GroupBy(s => s.EB_VIPCODE).Where(amountfunc.And(countfunc).Compile()), a => a.XF_VIPCODE, b => b.Key, (a, b) => a);标了颜色的那些事什么意思

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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