子查询里用到主表的某个属性,生成的SQL语句中子查询的sql语句包含it别名,主表表明没有别名,导致无法执行 返回

SqlSugar 沟通中
3 271
该叫什么 宇航 发布于2025/8/12
悬赏:0 飞吻

环境

.net版本:6.0

sqlsugar版本:5.1.4.199

子查询里用到主表的某个属性,生成的SQL语句中子查询的sql语句包含it别名,主表表明没有别名,导致无法执行

        var info = await db.Queryable<ProjectEntity>().Includes(it => it.Extend)
            .Where(it => it.Id == id)
            .Select(it => new ChildProjectFullInfoOutput
            {
                id = it.Id,
                parentId = it.ParentId,
                parentName = it.ParentId == "0" ? "" : SqlFunc.Subqueryable<ProjectEntity>().Where(s => s.Id.Equals(it.ParentId)).Select(s => s.FullName),
                enCode = it.EnCode,
                fullName = it.FullName,
                htJine = it.HtJine,
                extend = it.Extend.Adapt<ProjectExtendDetail>(),
                type = it.Type,
                htQyrq = it.HtQyrq.Value.ToString("yyyy-MM-dd"),
                htJsfs = it.HtJsfs,
                htGq = it.HtGq,
            }).FirstAsync();

生成的SQL语句

SELECT  `F_ID` AS `id` , `f_parent_id` AS `parentId` , ( CASE  WHEN ( `f_parent_id` = N'0' ) THEN N''  ELSE (SELECT `s`.`f_full_name` FROM `wy_project` `s`  WHERE  (`s`.`F_ID` = `it`.`f_parent_id`)  limit 0,1) END ) AS `parentName` , `f_en_code` AS `enCode` , `f_full_name` AS `fullName` , `f_ht_jine` AS `htJine` , `f_type` AS `type` , DATE_FORMAT(`f_ht_qyrq`, '%Y-%m-%d') AS `htQyrq` , `f_ht_jsfs` AS `htJsfs` , `f_ht_gq` AS `htGq` ,`F_ID` AS SugarNav_Id FROM `wy_project`   WHERE ( `F_ID` = N'723707971841818565' )   LIMIT 0,1



热忱回答3

  • fate sta fate sta VIP0
    2025/8/12

     好的我看一下。

    0 回复
  • 宇航 宇航 VIP0
    2025/8/12

    @fate sta:你好,把子查询的Equals改为==,生成的SQL语句主表就包含别名it了。应该是Equals的BUG。

    0 回复
  • fate sta fate sta VIP0
    2025/8/12

    SqlSugarCore 5.1.4.200-preview16


    勾预览已修复

    0 回复