【.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();
相关推荐
阿巴斯甜8 小时前
preProcessHandler: (AppException) -> Boolean用法:
java
m0_678485458 小时前
怎么导入只包含特定表的SQL文件_正则提取与分离导入
jvm·数据库·python
星晨雪海8 小时前
若依框架原有页面功能进行了点位管理改造之列表查询(4)
数据库·sql·mybatis
历程里程碑8 小时前
MySQL事务深度解析:ACID到MVCC实战+万字长文解析
开发语言·数据结构·数据库·c++·sql·mysql·排序算法
NineData8 小时前
NineData 将亮相 2026 德国汉诺威工业博览会
数据库·人工智能·数据库管理工具·ninedata·数据库迁移工具·玖章算术
qq_432703668 小时前
MySQL中如何编写带有循环的函数_MySQL函数流程控制技巧
jvm·数据库·python
LiAo_1996_Y8 小时前
如何保证MongoDB文档的数据质量_JSON Schema验证规则配置
jvm·数据库·python
Lyyaoo.8 小时前
【JAVA基础面经】native方法
java·开发语言
a***72898 小时前
SQL 注入漏洞原理以及修复方法
网络·数据库·sql
牛十二8 小时前
nacos2.4连接出错源码分析
java·linux·开发语言