Updateable.InnerJoin.SetColumns中,使用SqlFunc.IIF/IF,表别名丢失了 返回

SqlSugar 沟通中
7 178
该叫什么 Taoyi 发布于1个月前
悬赏:0 飞吻

image.png

image.png


sqlserver数据库,对应的sql拷出来,发现SqlFunc.IF和IIF里面执行的逻辑,字段的别名全部都没加上,导致字段不明确,有什么解决办法吗

热忱回答7

  • fate sta fate sta VIP0
    1个月前

    按问模版 提供完整的DEMO


    https://www.donet5.com/Home/Doc?typeId=2366

    0 回复
  • Taoyi Taoyi VIP0
    1个月前

    @fate sta:就是最基础的表关联更新,setColumns时,用case when对应的函数处理表别名丢失了,,,调整为表关联查询在select中就可以正常带出表别名

    0 回复
  • Taoyi Taoyi VIP0
    1个月前

    @fate sta

    [SugarTable("")]
    public class ClassA {
        public string EmpId {get; set;}
        public DateTime EndDate {get; set;}
        public DateTime StartDate {get; set;}
    }
    
    [SugarTable("")]
    public class ClassB {
        public string EmpId {get; set;}
        public string CourseModel {get; set;}
        public DateTime? Deadline {get; set;}
        public int? Period {get; set;}
    }
    
    
    
    db.Updateable<ClassA>()
        .InnerJoin<ClassB>((m, e) => m.EmpId == e.EmpId)
        .SetColumns((m, e) => new ClassA() {
            EndDate = SqlFunc.IIF(e.CourseModel.Equals("DATE), 
                                    SqlFunc.ToDate(e.Deadline).Date, 
                                    SqlFunc.DateAdd(m.StartDate
                                        , e.Period ?? 0
                                        , DateType.Day).Date)
        })
        .ExecuteCommand();


    0 回复
  • fate sta fate sta VIP0
    1个月前

    image.png

    编译都没有通过

    0 回复
  • fate sta fate sta VIP0
    1个月前

     -

    0 回复
  • fate sta fate sta VIP0
    1个月前

    -

    0 回复
  • fate sta fate sta VIP0
    1个月前

    SqlSugarCore 5.1.4.178-preview03


    过五分钟后更新预览版本已修复

    0 回复