【BUG】使用PartitionBy分组查询,多条件的问题 返回

C#论坛 老数据
1 3401
该叫什么 feiyit 发布于2018/6/29
悬赏:5 飞吻

使用PartitionBy分组查询【分页】,在查询返回结果中使用了子查询,  在子查询条件中使用多个提示    字段“”已被自定义“”的问题


代码如下

var query = Db.Queryable<ErpGoodsSku>()
                    .WhereIF(!string.IsNullOrEmpty(parm.key), m => m.Code.Contains(parm.key))
                    .WhereIF(!string.IsNullOrEmpty(parm.guid), m => m.BrankGuid == parm.guid)
                    .WhereIF(!string.IsNullOrEmpty(parm.time), m => m.AddDate >= Convert.ToDateTime(beginTime) && m.AddDate <= Convert.ToDateTime(endTime))
                    .PartitionBy(m => new { m.Code, m.Guid })
                    .Select(m => new StockInventory() {
                        Code = m.Code,
                        Sale = SqlFunc.AggregateSum(m.SaleSum),
                        //Stock = SqlFunc.Subqueryable<ErpInOutLog>().Where(g => g.GoodsGuid == m.Guid && g.Types==1).Sum(g => g.GoodsSum),
                        Stock = SqlFunc.Subqueryable<ErpInOutLog>().Where(g => g.GoodsGuid == m.Guid).Sum(g => g.GoodsSum),
                        Transfer = SqlFunc.Subqueryable<ErpTransferGoods>().Where(g => g.GoodsGuid == m.Guid).Sum(g => g.GoodsSum),
                        Return = SqlFunc.Subqueryable<ErpReturnGoods>().Where(g => g.GoodsGuid == m.Guid).Count(),
                        Back = SqlFunc.Subqueryable<ErpBackGoods>().Where(g => g.GoodsGuid == m.Guid).Count()
                    }).ToPageAsync(parm.page, parm.limit);

在上面代码中,我注释的部分

g => g.GoodsGuid == m.Guid && g.Types==1

其中,第二个条件g.Types 提示 @Types0已被定义


具体错误如下

TIM图片20180629152409.png


在查看SqlBuilder.QueryBuilder.Parameters这里,并没有出现2次@Type0的参数



小杰,有空看下,如果要看具体的,在群里,直接@北京-裕哥

热忱回答1

  • feiyit feiyit VIP0
    2018/6/29

    找到问题所在了,是异步的问题,把异步换成同步就好了


    打脸了

    0 回复