将 SQL 转换为 LINQ(内连接到左外连接)C#

Converting SQL to LINQ (inner join into a left outer join) C#

您好,我正在尝试将下面的 SQL 部分转换为 LINQ(只学习 linq,所以请多多包涵)

SELECT SUM(Bt.Stake)AS TotalStake, SUM(Bt.Payout) AS TotalPayout, SUM(Bt.Stake - Bt.BetPayout) AS TotalProfitLoss, COUNT(Bt.BtID) AS NumberBts,
                      EV_MarketMix.Description
            FROM         Bt INNER JOIN
                                  Slip ON Bt.SlipID = Slip.SlipId LEFT OUTER JOIN
                                  EV_MarketMix ON Bt.MarketMixID = EV_MarketMix.MarketMixID
            WHERE(Slip.DateScanned >= @StartDate) AND(Slip.DateScanned < @EndDate)
            GROUP BY EV_MarketMix.Description

我知道如何使用 join in on equals linq 格式进行内部连接,并且我阅读了如何使用 DefaultIfEmpty() 属性 进行左外部连接,但我不确定如何进行继续进行内部连接,然后立即进行左外部连接。谁能告诉我如何从那里去?任何帮助或指出我正确的方向将不胜感激谢谢。

与 SQL 一样,您可以执行内部联接,然后执行另一个左联接

var query = (from t1 in Context.Table1
    join t2 in Context.Table2 on //...  //inner join
    join t3 in Context.Table3 on /*...*/ into joined //left join
    from joined.DefaultIfEmpty()
    select new 
    {
       //....
    };