使用LeftJoinIF,条件不成立时查询结果出错 返回

SqlSugar 待处理
1 157
await Db.Queryable<WebPictureEntity>()
.LeftJoinIF<WebUserCollectionPicEntity>(!string.IsNullOrEmpty(model.fuid), (t, c) => c.fuid == model.fuid && t.fid == c.fpicid)
.Where((t, c) => t.fenable == true && t.fdelete != true)
.OrderBy((t, c) => t.fctime, SqlSugar.OrderByType.Desc)
.Select((t, c) => new WebPictureDto
{
    fid = t.fid,
    fnumber = t.fnumber,
    isFavorite = SqlFunc.HasValue(c.fid),
    s = c.fid
})
.ToPageListAsync(model.page, model.rows, records)

如果接口接收到了model.fuid的值,代码正常运行;如果没接收到,则会将t.fid赋给c.fid,导致isFavorite全为true;如果将代码改成 isFavorite = SqlFunc.HasValue(model.fuid) ? SqlFunc.HasValue(c.fid) : false ,则查询结果为空数组,不管接没接收到model.fuid都一样

sqlsugar为最新预览版

热忱回答1


  • WebUserCollectionPicEntity有个字段fpicid,WebPictureEntity表没有,我将代码改成 isFavorite = SqlFunc.HasValue(c.fpicid) 后,model.fuid有值则代码正常运行,model.fuid没值则查询结果为空数组

    0 回复