content.table.Join(
_context.Prices,
collectedScrap => collectedScrap.ScrapId,
price => price.ScrapId,
(collectedScrap, price) => new
{
label = collectedScrap.Scrap.Label,
date = collectedScrap.Date,
price = price.Value,
scrap = collectedScrap.Scrap.Label,
weight = collectedScrap.Weight
}
)
.Where(d => d.date > from)
.Where(d => d.date < to)
.Select(result => new
{
scrap = result.label,
weight = result.weight,
price = result.price,
total = result.price * result.weight
}).ToList();
С обычным SQL я могу использовать условие для соединения. Как я могу использовать WHERE внутри соединения. Теперь он ведет себя почти как правое соединение (мне нужно ограничить соединение одним результатом). ----- тестирование с групповым объединением сейчас
сгенерировано sql:
SELECT [collectedScrap.Scrap].[Label] AS [scrap], [collectedScrap].[Weight], [price].[Value] AS [price], [price].[Value] * [collectedScrap].[Weight] AS [total]
FROM [CollectedScrap] AS [collectedScrap]
LEFT JOIN [Scrap] AS [collectedScrap.Scrap] ON [collectedScrap].[ScrapId] = [collectedScrap.Scrap].[ID]
INNER JOIN [Prices] AS [price] ON [collectedScrap].[ScrapId] = [price].[ScrapId]
WHERE ([collectedScrap].[Date] > @__from_0) AND ([collectedScrap].[Date] < @__to_1)