将 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
{
//....
};
您好,我正在尝试将下面的 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
{
//....
};