【.net core】【sqlsugar】联表查询与实体自动映射语法

官方文档:联表查询、关联查询、JoinTable、连表查询、Left Join - SqlSugar 5x - .NET果糖网

Join用法:语法糖2

Select 用法:自动映射

cs 复制代码
//类A 数据库字段与类成员一致
public class ClassA{
    //主键ID
    public int id{get;set;}
    //名称
    public string name{get;set;}
}
//类B 数据库字段与类成员一致
public class ClassB{
    //主键ID
    public int id{get;set;}
    //表A主键
    public int A_id{get;set;}
    //表B值
    public string value {get;set;}
}
//视图类B 继承ClassB,并增加子成员name(用于接收类A的name)
public class ViewClassB:ClassB{
    public string name{get;set;}
}

//使用SQLSUGAR语法进行查询
var query = db.Queryable<ClassB,ClassA>((a,b) => new JoinQueryInfos(
    JoinType.Left, a.A_id== b.id//以B为主表左连接A
    ))
    .Where(a => a.value != "")
    .Select((a, b) => new ViewClassB{
        //SelectAll为SqlSugar实体自动映射语法,使用实体中某一字段(类中任一成员)调用SelectAll进行实体自动映射
        //等于 sql中的 a.*   (SelectAll建议对一张表使用,多表会容易重名)
        value= a.value.SelectAll(),
        name = b.name
    } );

//获取列表数据
List<ViewClassB> viewList = await query.ToListAsync();
相关推荐
倔强的石头_11 分钟前
kingbase备份与恢复实战(一)—— 备份体系、RPO-RTO与选型(Windows+ksql)
数据库
得物技术13 分钟前
Sentinel Java客户端限流原理解析|得物技术
java·后端·架构
PM老周15 分钟前
2026年软硬件一体化项目管理软件怎么选?多款工具对比测评
java·安全·硬件工程·团队开发·个人开发
西门吹雪分身33 分钟前
mysql之数据离线迁移
数据库·mysql
一只大袋鼠1 小时前
并发编程(三):线程快照统计・grep+awk+sort+uniq 实战详解
java·开发语言·多线程·并发编程
unfeeling_1 小时前
Tomcat实验
java·tomcat
Hx_Ma161 小时前
前台模块以及分页逻辑
java·开发语言
电商API&Tina1 小时前
京东商品详情API接口接入与应用
数据库·microsoft
亓才孓1 小时前
AspectJ和SpringAOP的区别
java·开发语言
OnYoung1 小时前
理解关系数据库表间的一对一和一对多关系
数据库