我们知道使用EF Core的Join函数可以实现SQL中的INNER JOIN,那么怎么实现LEFT JOIN呢?
答案就在GroupJoin、SelectMany和DefaultIfEmpty三个Linq函数的组合使用上。
下面我们举个例子,建立一个.NET Core控制台项目,来演示使用EF Core将Person表来LEFT JOIN Products表。
Person表在EF Core中的实体类,如下:
public partial class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int? Age { get; set; }
public DateTime? CreateTime { get; set; }
public string Flag { get; set; }
public string VarCharDescription { get; set; }
}
Products表在EF Core中的实体类,如下:
public partial class Products
{
public int Id { get; set; }
public string Product { get; set; }
}
然后Person表和Products表,在SQL Server数据库中的数据如下所示: