У меня следующая структура таблицы:
![enter image description here](https://i.stack.imgur.com/yKTJF.png)
Я хочу получить все средства для предоставленного reportId . Я сделал это следующим образом:
var result = _context.FundsInReports
.Join(_context.Funds,
a=> a.FundId,
b => b.Id,
(fir, fund) => new {fir, fund})
.Join(_context.Reports,
a=> a.fir.ReportId,
b=> b.Id,
(fir2, report) => new { fir2, report})
.Where(q=> q.fir2.fir.ReportId==reportId)
.Select(res => new FundsResponse()
{
FundId = res.fir2.fund.Id,
LegalName = res.fir2.fund.LegalName,
HeaderName = res.fir2.fund.HeaderName,
PortfolioCurrency = res.fir2.fund.PortfolioCurrencyId,
BaseCurrency = res.fir2.fund.BaseCurrencyId,
FileName = res.fir2.fund.FileName,
Locked = res.fir2.fund.Locked
}).ToList();
, и это прекрасно работает ... Однако я хотел бы использовать этот код:
var result = _context.Funds
.Include(a => a.FundsInReports)
.ThenInclude(a => a.Report) // Many to many , intellisense is not working here !
.Select(res => new FundsResponse()
{
FundId = res.Id,
LegalName = res.LegalName,
HeaderName = res.HeaderName,
PortfolioCurrency = res.PortfolioCurrencyId,
BaseCurrency = res.BaseCurrencyId,
FileName = res.FileName,
Locked = res.Locked
}).ToList();
, но я не знаю, как добавить фильтрация (где) в этот код. Спасибо ...