2级对象属性筛选报错 返回

求助
31 144
该叫什么 moon 发布于2周前
悬赏:5 飞吻

为什么使用二级对象属性筛选会报错

image.png

image.png


热忱回答31

  • 发你现在报错的代码

    0 回复
  • moon moon VIP0
    2周前

    @fate stay night

    List<Expression<Func<AdminLog, bool>>> whereExp = new List<Expression<Func<AdminLog, bool>>>();

                whereExp.Add(e => e.Admin.Name == uname);


    0 回复
  • @moon:你直写死在 mapper里面测试一下,不要用构造的,如果写死在mapper里面的是好的那么就是你构造的结构不对

    0 回复
  • 你构造的别名是 e 那么你query中的别名是不是e

    0 回复
  • 你发这种片面代码 ,我是无法给你找出错误的

    0 回复
  • moon moon VIP0
    2周前

    @fate stay night:感谢大哥  是e的问题image.png

    0 回复
  • @moon:你好。你是怎样解决2级属性筛选的。

    0 回复

  • @moon:一直报错。

    0 回复
  • moon moon VIP0
    6天前

    我的是二级属性筛选要和mapper里的名字一样

    0 回复
  • moon moon VIP0
    6天前

    @青青我的是二级属性筛选要和mapper里的名字一样

    0 回复
  • @moon微信图片_20210120084601.png

    0 回复
  • @moon

    public List<Model_Project> GetProjectList()

            {


                var list = base.AsQueryable().Where(it=>it.penabled==1&&it.isDelete==0).Mapper(it => it.Items.Where(x=>x.plenabled==1),it => it.Items.First().pid).ToList();

                 

                return list;

            }


    items是二级属性,然后加上where 就报错。

    0 回复
  • moon moon VIP0
    5天前

    @青青Mapper里面不能这样写吧

    你看看文档http://www.donet5.com/Home/Doc?typeId=1188

    0 回复
  • @moon:这个我看过,可是我需要一对多的子节点的里面加一个过滤把需要的状态查询出来,不需要的不查出来。

    0 回复
  • @moon:哥加个联系方式,请教一下。

    0 回复
  • @moon:     这样写直接报错了。根本不行哎微信图片_20210120103646.png

    0 回复
  •  public List<Model_Project> GetProjectList()

            {


                var list = base.AsQueryable().Where(it=>it.penabled==1&&it.isDelete==0).Mapper(it => it.Items,it => it.Items.First().pid).Where(it=>it.Items.Where(it=>it.plenabled==1)).ToList();

                 

                return list;

            }


    @moon

    0 回复
  • moon moon VIP0
    5天前

    @青青:一对多模式不支持条件筛选把 

    0 回复
  • @moon

    0 回复
  • @moon:哥有没有遇到这种情况。你是怎么处理的

    0 回复
  • moon moon VIP0
    5天前

    @青青:自己写sql


    0 回复
  • moon moon VIP0
    5天前

    @青青:或者不用导航查询

    0 回复
  • moon moon VIP0
    5天前

    @青青:查询出来所有在内存中过滤

    0 回复
  • @moon:行吧,我在想办法


    0 回复
  • moon moon VIP0
    5天前

    @青青

    ERROR - 【异常类型】:SqlSugarException

    【异常信息】:English Message : it.GoodPrice.Countno support

    Chinese Message : 不支持表达式it.GoodPrice.Count 1.检查当前表达式中的别名是否与Mapper中的一致 2.目前只支持 1对1 Mapper下的 Where

    比较方便的就是先查询出来所有,然后在进行过滤

    0 回复
  • @moon:更新最新试试

    0 回复
  • @fate stay night:1对多好像还没支持where后续完善

    0 回复
  • Where(it=>it.Items.Where(it=>it.plenabled==1).any()).ToList();下面版本支持怎么写 你不急可以先放着

    0 回复
  • @fate stay night:哥,我试了试,会出错。

    SqlSugar.SqlSugarException: .Mapper() parameter error

       在 SqlSugar.Check.Exception(Boolean isException, String message, String[] args)

       在 SqlSugar.QueryableProvider`1._Mapper[TObject](Expression mapperObject, Expression mapperField)

       在 SqlSugar.QueryableProvider`1.Mapper[TObject](Expression`1 mapperObject, Expression`1 mapperField)


    0 回复
  • @fate stay night:已经是最新的了哦 

    0 回复
  • @fate stay night

     var list = base.AsQueryable().Where(it=>it.penabled==1&&it.isDelete==0).Mapper(it => it.Items.Where(ix=> ix.plenabled == 1).Any(), it => it.Items.First().pid).ToList();


                 return list;


    0 回复

版块

学习文档

新注册

发布达人

回贴达人