【.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();
相关推荐
:mnong7 分钟前
Superpowers 项目设计分析
java·c语言·c++·python·c#·php·skills
淡定一生233328 分钟前
数据仓库建模方法
大数据·数据库·数据仓库
洛菡夕31 分钟前
MySQL故障排查与生产环境优化
数据库·mysql
扶苏-su39 分钟前
Java--获取 Class 类对象
java·开发语言
东离与糖宝40 分钟前
LangChain4j vs Spring AI:最新对比,Java企业级Agent开发
java·人工智能
gjc59243 分钟前
零基础OceanBase数据库入门(3):创建租户
数据库·oceanbase
l1t44 分钟前
DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句
大数据·数据库·postgresql
RestCloud1 小时前
如何用ETL实现多租户数据库的数据隔离与整合
数据库·数据仓库·etl·etlcloud·数据同步·数据集成平台·数据库传输
悢七1 小时前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
gjc5921 小时前
零基础OceanBase数据库入门(4):创建MySQL模式数据库
数据库·mysql·oracle·oceanbase