Sqlsugar SqlFunc.Subqueryable子查询 返回

SqlSugar 待处理
2 131

  var data=   await cutomers

              .OrderByDescending(cu =>cu.CreateTime)

              .Select(cu =>new

              {

                  CustomerId=cu.Id,

                  WechatNickName=cu.WechatNickName,

                  CustomerAccount=cu.CustomerAccount,

                  WeworkUserId=cu.WeworkUserId,

                  CustomerName=cu.CustomerName,

                  ProductType =  SqlFunc.Subqueryable<Orders>()

                             .InnerJoin<ProductType>((o, p) => o.ProductTypeId == p.Id)

                             .Where((o, p) => o.CustomerId == cu.Id && o.IsAct == true && o.OrderEndTime >= now && SqlFunc.IsNull(o.IsRefund, false) == false)

                             .OrderByDesc((o, p) => p.ProductLevel)

                             .First(p => new ProductTypeDto 

                             {

                               ProductTypeId=p.Id,

                               ProductTypeName=p.ProductTypeName

                             }),

                  CustomerTag = SqlFunc.Subqueryable<CustomerProtypeTags>()

                          .Where(ta => ta.CustomerId == cu.Id && ta.TagId == queryDto.TagId && ta.IsCurrent == true)

                          .First(ta => new CustomerProTagDto{

                            TagName=  ta.TagName,

                            TagId=  ta.TagId,

                            Remark=ta.Remark

                          })


              }).ToListAsync();

  其中 ProductType 子查询First 不支持(o, p)=>, 只能单个o 或者 p

  ProductType =  SqlFunc.Subqueryable<Orders>()

             .InnerJoin<ProductType>((o, p) => o.ProductTypeId == p.Id)

             .Where((o, p) => o.CustomerId == cu.Id && o.IsAct == true && o.OrderEndTime >= now && SqlFunc.IsNull(o.IsRefund, false) == false)

             .OrderByDesc((o, p) => p.ProductLevel)

             .First((o, p) => new ProductTypeDto 

             {

               ProductTypeId=o.Id,

               ProductTypeName=p.ProductTypeName

             }),

 就提示
无法从用法中推断出方法“Subqueryable<Orders>.First<TResult>(Func<Orders, TResult>)”的类型参数。请尝试显式指定类型参数。

热忱回答(2)

  •         .First(ta => new CustomerProTagDto{

                                TagName=  ta.TagName,

                                TagId=  ta.TagId,

                                Remark=ta.Remark

                              })

    改成select

    0 回复
  • first改select

    0 回复