【.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();
相关推荐
阿萨德528号1 分钟前
MyBatis OGNL 表达式陷阱:Integer类型字段使用“xxx!= ‘‘”时判断失效
java·开发语言·mybatis
数据知道1 分钟前
PostgreSQL 核心原理:一文掌握数据库的热数据缓存池(共享缓冲区)
数据库·缓存·postgresql
上海合宙LuatOS3 分钟前
LuatOS 框架的设计原理
java·开发语言·单片机·嵌入式硬件·物联网·硬件工程
璞~4 分钟前
面试题文件断点续传怎么实现?
java
毕设源码-赖学姐5 分钟前
【开题答辩全过程】以 高校网上订餐系统为例,包含答辩的问题和答案
java
计算机学姐7 分钟前
基于SpringBoot的校园流浪动物救助平台
java·spring boot·后端·spring·java-ee·tomcat·intellij-idea
渣瓦攻城狮8 分钟前
解决idea push时账号名密码出现401问题
java·ide·intellij-idea
想要一只奶牛猫9 分钟前
SpringBoot 配置文件
java·spring boot·后端
·云扬·9 分钟前
MongoDB高可用方案详解:副本集与分片集群
数据库·mongodb
xqqxqxxq11 分钟前
洛谷算法1-2 排序(NOIP经典真题解析)java(持续更新)
java·开发语言·算法