请教多级导航(省>市>区)场景下,如何通过区的个数>0,过滤没有区的省的数据 返回

SqlSugar 沟通中
15 240
 public class 省
{
  public int id{get;set;}
 public string name{get;set;}

[Navigate(NavigateType.OneToMany, nameof(.省Id),nameof(id))]
public List<市>Cities{get;set;}
}
public class 市
{
  public int id{get;set;}
 public int 省Id{get;set;}
 public string name{get;set;}
 [Navigate(NavigateType.OneToMany, nameof(区.市Id),nameof(id))]
 public List<区>areas{get;set;}
}

public class 区
{
  public int 市Id{get;set;}
  public int id{get;set;}
 public string name{get;set;}
}


 上面的结果,通过include分页查询,过滤”市“对面里面没有区的省数据



热忱回答15

  • where(it=>it.xxx.Any(s=>s.yyy.Any()))

    嵌套any,别名不要一样

    0 回复
  • 我的原因,抱歉

    0 回复
  • @fate sta


    0 回复
  • @fate sta

     咨询一下,我这样配置的

    image.png

    然后我这样转Dto

    image.png

    会报错:

    中文提示 : x.HistoryBlendSampleComponentOils.Select(f => new BlendSampleComponentDetailDto() {CrudeSysCode = f.CrudeSysCode, CrudeName = f.CrudeName, FormulaScale = f.FormulaScale, OilCategory = f.OilCategory, OilNatures = f.OilNatures.Select(c => new SampleNature() {NatureCode = c.NatureCode, NatureName = c.NatureName, NatureValue = c.NatureValue}).ToList()}).ToList()语法不支持,请查SqlSugar文档询导航DTO用法,Exception has been thrown by the target of an invocation.\r\nEnglish Message : x.HistoryBlendSampleComponentOils.Select(f => new BlendSampleComponentDetailDto() {CrudeSysCode = f.CrudeSysCode, CrudeName = f.CrudeName, FormulaScale = f.FormulaScale, OilCategory = f.OilCategory, OilNatures = f.OilNatures.Select(c => new SampleNature() {NatureCode = c.NatureCode, NatureName = c.NatureName, NatureValue = c.NatureValue}).ToList()}).ToList() no support,Exception has been thrown by the target of an invocation."


    将代码改成如下不报错了,但是通过以下方法过滤不生效了

    .Where(x=>x.HistoryBlendSampleComponentOils.Any(f=>f.OilNatures.Any()))

    image.png

    0 回复
  • @光与暗:多字段导航功,可能还没有支持这个select。应该只有一对多和多对多支持了。我这边验证一下,如果好支持发布一个预览版本

    0 回复
  • @fate sta

    好的感谢,感谢

    0 回复
  • @光与暗

    image.png

    我这边测试简单的是可以的,需要提供完整DEMO 

    0 回复
  • @fate sta:麻烦,帮忙看看问题出在哪

    SqlSugar的简单使用demo.zip


    0 回复
  • 大佬看了,如何解决三层导航,通过孙的导航列表数据过滤主表?@fate sta

    0 回复
  • @光与暗:现在看

    0 回复
  • image.png

    0 回复
  • 上下都要过滤

    0 回复
  • 上面是过滤主表

    下面是过滤子表

    0 回复
  • @fate staimage.png

    按照你的方法,结果还是没有过滤主表

    还有另一个问题

    image.png

    0 回复
  • @fate sta:大佬可有解决方案吗

    0 回复