【.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();
相关推荐
Cosmoshhhyyy2 分钟前
《Effective Java》解读第40条:坚持使用Override注解
java·开发语言
·云扬·3 分钟前
【MySQL】主从复制:原理、作用与实现方法
数据库·mysql
数据知道8 分钟前
PostgreSQL:详解 MySQL数据迁移,如何将数据平滑迁移到PostgreSQL
数据库·mysql·postgresql
番茄去哪了29 分钟前
在Java中操作Redis
java·开发语言·数据库·redis
无心水32 分钟前
6、合纵连横:开源快速开发平台全解析与自建平台架构实战【终篇】
java·后端·科技·spring·面试·架构·开源
JiaHao汤32 分钟前
一文掌握 SQL:数据定义、操作与查询完整教程
数据库·sql
ritxgt00633 分钟前
Linux下安装Nginx服务及systemctl方式管理nginx详情
java
白太岁37 分钟前
Redis:(3) Lua 与 Redis、基于连接池的 Facade 模式封装
数据库·c++·redis·lua·外观模式
闻哥38 分钟前
Java虚拟机内存结构深度解析:从底层原理到实战调优
java·开发语言·jvm·python·面试·springboot
茶本无香38 分钟前
【无标题】
java·设计模式·策略模式