【.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();
相关推荐
weixin_511255212 分钟前
更新jar内资源和代码
java·jar
木井巳7 分钟前
【递归算法】验证二叉搜索树
java·算法·leetcode·深度优先·剪枝
不当菜虚困8 分钟前
windows下HSDB导出class文件报错【java.io.IOException : 系统找不到指定的路径。】
java·开发语言
zhangyifang_00911 分钟前
ClickHouse查询报错:Code: 62. DB::Exception: Max query size exceeded:
数据库·clickhouse
2301_7887560614 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
小马爱打代码15 分钟前
Spring Boot:第三方 API 调用的企业级容错设计
java·spring boot·后端
uoKent22 分钟前
MySQL示例数据库
数据库·mysql
麦聪聊数据24 分钟前
利用SQL2API模式重构微服务中的数据查询层
数据库·sql·低代码·微服务·架构
草履虫建模29 分钟前
A13 String 详解:不可变、常量池、equals 与 ==、性能与常见坑
java·开发语言·spring·jdk·intellij-idea·java基础·新手
占疏30 分钟前
数据库-BRIN 索引
数据库·mysql