官方文档:联表查询、关联查询、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();