我正在尝试将“SQL Outer Apply”转换为Linq。 SQL是:
select Currencies.Name, Currencies.Sign ,a.ActualPrice
from Currencies
outer apply (select CurrencyID,ActualPrice from Prices
where ProductID=5 and Currencies.ID=Prices.CurrencyID)a
我已经尝试了以下Linq但是得到了一行,而不是每个货币的行,因为SQL语句给了我。
from c in Currencies
from p in Prices.DefaultIfEmpty()
where p.ProductID.Equals(5) && c.ID==p.CurrencyID
select new {c.Name, p.ActualPrice}
对此有何解决方案?
答案 0 :(得分:0)
试试这个:
var result =
Currencies.Select(c => new
{
Name = c.Name,
Sign = c.Sign,
ActualPrice = Prices.Where(p => p.ProductID == 5 &&
p.CurrencyID == c.ID)
.FirstOrDefault()
});
我不确定这是否会返回正确的结果,因为当outer apply
中的子选择返回多行时,我不知道会发生什么......