关于表关联、分组、分页的问题 返回

SqlSugar 老数据
3 3731

Sugar表与Color表关系:一对多。


Sugar表:

idnamebranddate
1白砂糖品牌A2017
2小冰糖品牌B2017
3大冰糖品牌C2017


Color表:

idsidcolortype
11白色Good
21黄色Good
32白色Bad


我要分页查询,在Color表有值且Type=Good的Sugar记录到一个新实体Sugar2,无重复内容。


代码1:

db.Queryable<Sugar>()

 .JoinTable<Color>((a, b) => a.id == b.sid, JoinType.Right)

 .Where<Color>((a,b) => b.type.Equals("Good"))

 .GroupBy(a => a.id)

 .GroupBy(a => a.name)

 .GroupBy(a => a.brand)

 .Select(a => new Sugar2()

 {

  name = a.name,

  brand = a.brand,

  date = a.date

 }

 .ToPageList(pageIndex, pageSize, ref pageCount);

提示:id、name、brand不明确,GroupBy<Sugar>()也一样。


代码2:

db.Queryable<Sugar>()

 .JoinTable<Color>((a, b) => a.id == b.sid, JoinType.Right)

 .Where<Color>((a,b) => b.type.Equals("Good"))

 .GroupBy("a.id,a.name,a.brand")

 .Select(a => new Sugar2()

 {

  name = a.name,

  brand = a.brand,

  date = a.date

 }

 .ToPageList(pageIndex, pageSize, ref pageCount);

提示:获取成功,内容按Size正常返回的,数据库内有几十条数据,但是pageCount等于永远=1。


代码3:

db.Queryable<Sugar>()

 .JoinTable<Color>((a, b) => a.id == b.sid, JoinType.Right)

 .Where<Color>((a,b) => b.type.Equals("Good"))

 .GroupBy("a.id,a.name,a.brand")

 .Count();

提示:获取成功,内容按Size正常返回的,数据库内有几十条数据,但是Count等于永远=1。


我获取了Sql,没有问题啊,能查到全部数据,显示影响行数也对的,但是只要用了这个GroupBy("字符串"),查出有记录Count就等于1。


几个问题:

  1. 表关联查询再表达式分组,该如何实现?

  2. 使用字符串分组,是什么问题导致Count=1?

  3. 我要的结果该如何正确实现?


帮帮忙,非常感谢!




热忱回答3

  • 开心 开心 VIP0
    2017/5/27

    不错

    0 回复
  • Db.pagemodel=pagemodel.offset

    0 回复
  • SqlSugar SqlSugar VIP0
    2017/5/27

    @fate stay night:感谢,但是加上获取不到数据了,我用生成的SQL查询,ROUNUMBER是正常的。加上这个该怎么改呢,麻烦了!

    0 回复