请教联表分页后, 再嵌套, 匿名对象的写法 返回

SqlSugar
23 185
var query= db.Queryable<student>()
            .InnerJoin<teacher>((stu,tea)=>stu.id==tea.stuId)
            .where(..)
            .OrderBy(..)
            .select((stu,tea)=>new {stuId=stu.id ,teaId=tea.id});
            
 var total = query.Clone().Count();
 
 query.Skip(param.pageSize * (param.pageIndex - 1)).Take(param.pageSize);
 
 db.Queryable(query)//..此处语法不支持
         .leftJoin<score>((a,score)=> a.stuId=score.stuId && a.teaId=score.teaId)
         .where((a,score)=>score.type=="语文" || score.type=="数学")
         .select(..)
 
 ..sql思路是为了主query先分页,再附加其他业务数据。score的复合主键是teacherId+ studentId+ 其他,
 目前尝试过select new 具体class{} , MergeTable 都不行, 这种方式下一定得用导航查询才可以吗


热忱回答23

  •  query.Mergetable().leftJoin<score>((a,score)=> a.stuId=score.stuId && a.teaId=score.teaId)

    0 回复
  •  有ToPageList不需要 分开写 count

    0 回复
  • @fate sta:感谢回复, 目前 主query 与score 是1:N的关系, leftjon后会影响分页,所以这边先把主query分页了.再拼其他业务数据 , query.Mergetable()..  Mergetable提示前面不能用order和pager

    0 回复
  • @fate sta: 大概最终成表是这样,  


    教师    学生   不及格     不及格详情

    陈xx   熊xx    3门          语文, 数学 ....

    0 回复
  • @风涧丶Hx:OrderBy写到mergetable后面

    0 回复
  • @fate stadb.Queryable(query)提示语法不支持ISugarQueryable<'a>这个预先试过了 ,没办法了 现在用的子查询代替 

    压测时 大坨大坨的数据往里冲, 估计那时必被拉出来打

    0 回复
  • @风涧丶Hx:都说了用mergetable了 ,并且OrderBy写后面

    0 回复
  • 不用这个 db.Queryable(query)  

    0 回复
  • QQ截图20220920213714.png@fate sta:这两种写法 都不行, 第一种编译能过, 运行后提示不支持, 第二种编译过不了 

    0 回复
  • SqlSugarCore版本 5.1.2,7 

    0 回复
  • @风涧丶Hx:这样我发布个预览版本开放db.queryable匿名对象

    0 回复
  • SqlSugarCore 5.1.3.2-preview05


    等2分钟就可以安装了

    0 回复
  • @fate sta:好滴 好滴 项目里全是 主表+ 纵向字段扩展表 + 用户动态条件查询 ,   能开放匿名对象 真是解决大问题了 跪

    0 回复
  • image.png

    可以安装了

    0 回复
  • @fate sta:收到

    0 回复
  • QQ截图20220920220641.png@fate sta:已更新到pre05

    0 回复
  • 等等  搞错了  我试下db.queryable 

    0 回复
  • @fate staQQ截图20220920221007.png

    0 回复
  • @风涧丶Hx:这种需导航才点出子对象,你看一下reoleresoure配了导航属性了没有

    0 回复
  • a.x.id  ,那么这个x需要配置导航



    0 回复
  • image.png


    嵌套查询这边不能是对象,只能是字段

    0 回复
  • @fate sta:木有 , 实体生成和数据库改表  我这没权限改. 所以导航查询方式 一直没用, 明天协调加个导航 . 感谢大佬耗费时间解惑  


    0 回复
  • @fate sta:好的. 收到

    0 回复