在使用SqlSugar进行联表查询时,有以下几种方式:
- 使用Join方法:使用Join方法可以将多个表连接起来,然后通过Select方法选择需要的字段。示例代码如下:
var result = db.Queryable<Order, Customer>((o, c) => o.CustomerId == c.Id)
.Select((o, c) => new { o.OrderId, c.CustomerName })
.ToList();
- 使用JoinTable方法:JoinTable方法可以用于直接连接两个表,并指定连接条件。示例代码如下:
var result = db.Queryable<Order>()
.JoinTable<Customer>((o, c) => o.CustomerId == c.Id)
.Select((o, c) => new { o.OrderId, c.CustomerName })
.ToList();
- 使用JoinTable和Where方法:在JoinTable方法之后,可以使用Where方法添加额外的查询条件。示例代码如下:
var result = db.Queryable<Order>()
.JoinTable<Customer>((o, c) => o.CustomerId == c.Id)
.Where(o => o.Amount > 1000)
.Select((o, c) => new { o.OrderId, c.CustomerName })
.ToList();
- 使用JoinQuery方法:JoinQuery方法可以用于连接多个表,并指定各个表之间的关联关系,相比Join和JoinTable方法更加灵活。示例代码如下:
var result = db.Queryable<Order>()
.JoinTable<OrderItem>((o, i) => o.OrderId == i.OrderId)
.JoinTable<Product>((i, p) => i.ProductId == p.Id)
.Select((o, i, p) => new { o.OrderId, i.Quantity, p.ProductName })
.ToList();