一个报表。前台三个条件,颜色尺码和批次。勾选了就显示对应的分组信息,前台会传过来是够勾选颜色,尺码,批次。如果勾选了颜色。那么GroupBy条件就是颜色分组,如果同时勾选了颜色和尺码,那么GroupBy条件就是颜色和尺码,同时勾选三个就是三个分组条件,其他可以任意组合,后台代码:
query.GroupBy(q => new { batch = pc == 0 ? "" : q.batch, outtime = q.outtime, produceNo = q.produceNo, pcolorName = ys == 0 ? "" : q.pcolorName, szName = cm == 0 ? "" : realCount = ys == 0 ? 0 : q.realCount })
.Select(q => new
{
batch = pc == 0 ? "" : q.Key.batch,
produceNo = q.Key.produceNo,
pcolorName = q.Key.pcolorName,
szName = q.Key.szName,
});
关键就在于如何生成动态条件,求教,求demo
GroupBy条件若为常量,则自动忽略
if condition1 then
var query= linq group by color
if condition2 then
var query2=linq group by size
if condition3 then
var query3= linq group by batch
想过了可是结果一共有八种,字段比较多,我这是去掉了一大部分,字段大概有十几个。如果都写出来看起来会很臃肿的,后边还要加上select
微软怎么不给你考虑到:System.Linq.Dynamic
参考过,没有demo看起来有点吃力
@花飘水流兮: 谢谢,问题已解决,我的做法是三元运算符进行判断,常量则会自动忽略.不进行分组,
感觉直接拼sql更简单些
最后考虑的做法了
建议详细描述一下,将问题表达清楚,问题就解决了一半
– dudu 5年前